在Linux中,我试图调试从Python加载的共享库的C++代码。加载是使用ctypes包完成的。在Eclipse中,我在Python和C++代码中都设置了断点,但是C++代码中的断点跳过了C++代码中的断点( Python代码中的断点工作正常)。
我尝试过在Eclipse中使用attach to application (在Debug配置下)并选择process,但是它没有改变任何东西。在attach to application对话框中,我选择共享库作为项目,选择/usr/bin/python2.6作为C/C++ application。这是正确的方式吗?
在运行python代码之前,以及
在使用gdbserver时,我在调试时遇到了问题。gdb显示加载一个共享库时出错。
Error while mapping shared library sections:
`target:<path to library>': not in executable format: Invalid argument
当使用PID附加gdb时,我没有问题。但是gdbserver抛出上述错误,然后我无法在共享库中设置任何断点。
知道有什么不对吗?我有来自同一个应用程序的其他库,它们似乎没有任何问题。
我在跑
Centos 6.7
gdb version 7.11.1
gcc ve
我想调试我的C++。目前,库正在抛出一个异常,并确定在哪里,我想使用gdb。问题是gdb没有捕获异常堆栈。我所做的如下:
$ gdb python3
(gdb) run script.py
UserWarning: An exception occurred: sort_index(): detected NaN
当我尝试使用backtrace时
(gdb) backtrace
No stack.
我知道这样的回溯是可能的,因为我以前已经做过了,可能我遗漏了什么。正在使用调试模式编译库。
我正试图在gdb中运行应用程序,但我似乎对解决方案有问题。我无法以我尝试过的所有方式加载共享库。
库存储在/usr/local/lib64中,环境也可以:
echo $LD_LIBRARY_PATH
/usr/local/lib64:/home/user/lib
当我在gdb中运行鼓掌时,会发生以下情况:
(gdb) set solib-search-path /usr/local/lib64
(gdb) show solib-search-path The search path for loading non-absolute
shared library symbol files is
我有一个核心文件,我有二进制文件(C++)。问题是,在使用gdb分析核心文件时,如果我试图打印一个指针,它将打印出内存地址。一旦我试图打印该指针的原始上下文,它就会说:
如果没有要调试的进程,就不能这样做。
下面是一个示例:
(gdb) p objPtr
(gdb) $1 = {px = 0x12345678}
(gdb) p *objPtr
(gdb) You can't do this without a process to debug.
事实上,这是有意义的,因为核心文件不是那个二进制文件的进程。但是当二进制崩溃时,核心文件应该存储状态,我认为应该有一种方法从指针中获取
主要问题:
在试图调试运行在QNX中的嵌入式应用程序的Ubuntu中,我从gdb获得以下错误消息:
warning: Shared object "$SOLIB_PATH/libc.so.4" could not be validated and will be ignored.,
Q:什么是“验证”操作?
经过一些研究后,我发现readelf -n libfoo.so报告的信息包含一个build,并将其与某些内容进行比较,并且可能会出现不匹配,从而导致gdb拒绝加载库。如果是这种情况,那么文件的build是共享对象的build,而不是?我能找到解析可执行文件的信息吗?
更多背
在RedHat Linux上构建了一个共享对象,虽然所有代码都是使用debug编译的,但调试器(gdb)拒绝加载符号并发出错误,如下所示:
...
GNU gdb Fedora (6.8-37.el5)
...
This GDB was configured as "x86_64-redhat-linux-gnu"...
Dwarf Error: wrong version in compilation unit header (is 4, should be 2) [in module libgrokf.so]
有了这个错误,我无法在任何函数中触发断点,也看不到正确的堆
也许,我误解了一些东西,但我不能让Gdb读取调试库。我从命令行做的是:
gdb
file problem_exec
b main
r
GDB停在以下地点:
(gdb) r
Starting program: /Users/.../problem_exec
Breakpoint 1, main (argc=<error reading variable: Could not find the frame base for "main(int, char**)".>, argv=<error reading variable: Could not find th
我正在试着调试我的c++程序。我可以正常运行它,但当我尝试通过gdb运行exe时,它突然找不到我的so文件。该目录在我的path中,当我在gdb中尝试"show environment“时,path仍然显示该目录,但它找不到so文件。
我跑了
gdb --args ${EXE} ${ARGS}
然后我就回来了
error while loading shared libraries: libX.so: cannot open shared object file: No such file or directory.