gdb调试core dump文件,提示No symbol table info available.
我正在用GDB工具调试Ray系统(https://www.ray.io),其上层提供python API接口,底层使用C++编写,通过Cython连接(Cython内引用了c++代码,Ray将Cython编译成.so文件,被系统上层的python代码调用)。
我编写了一个python程序,其内部调用了ray系统提供的API,我想通过GDB调试程序,获得运行到C++代码时的变量信息。
我通过gdb python <PID>
命令连接到进程,然后使用generate-core-file
产生core dump文件,最后使用GDB连接core dump文件,查看到函数堆栈信息如下:
可以看到在#4 附近,提示No symbol table info available,这些都来自Cython代码编译成的_raylet.so文件。请问有什么办法可以解决这个问题,让我看到这些函数运行时的变量信息?
我的设备信息如下:
- gcc: 9.3.0
- GDB: 9.2
- python: 3.8.10
- Ray: 1.5.1
回答:
我已经解决了,应该就是类似gcc编译没有加参数-g的问题,我在ray文档中找到了相关的解决方法:
https://docs.ray.io/en/releas...
以上是 gdb调试core dump文件,提示No symbol table info available. 的全部内容, 来源链接: utcz.com/p/938125.html