另一方面,如果我让程序崩溃并生成一个核心转储(我使用kill -6 <pid>强制一个核心转储进行测试),gdb将从二进制文件加载符号,但不会从它的任何共享库加载符号,甚至libc.so也不会。虽然其他共享库很好,但不是必须的,如果没有来自libc.so的调试信息,gdb就无法解析堆栈跟踪,它们看起来都像垃圾。This GDB was configured as "--host=x86_64-pokysdk-linux --target=mipsel-poky-linux"
我仍然在努力获取GDB所需的符号信息。/x86/i686-linux-android-4.7/bin/i686-linux-android-gdb
found symbol: /media/rajeshkumar/droid_2k14/ref2,将全局级别的默认编译器标志(构建/核心/组合/选择.mk|构建/核心/组合/目标_linux-x86.mk)修改为"
我正在查看debug/gosym包,它的类型是gosym.Table,据说是Go可执行文件的符号表。不幸的是,我看不到任何从正在运行的程序中提取sysmbol表的方法(Go反射是缺乏的,我需要比它所能提供的更多的信息,特别是导出符号的名称)。如果这通常是不可能的,但可以在Linux / for ELF二进制文件上完成,这也是一个选择。
当我在gdb下运行代码时,使用“设置详细”,它会从libc6.so中读取符号,但是当我在C库调用(例如,叉)上保留一个断点,并运行信息局部变量/args时,它会说:"No符号信息表“。Reading symbols from /lib/ld-linux-armhf.so.3...done.Loaded symbols for /lib/ld-linux-armhf.so.3
Reading symbols from /
我认为在这里采取的最好的步骤是自己构建带有调试符号的库,这样我就可以进入函数并查看它正在执行的命令。我不清楚如何a)自己构建这个库,b)破解makefile来给我调试符号。/config -dThis system (debug-linux-x86_64) is not supported操作系统信息:Linux v