如何使用 gdb 调试二进制文件

如何使用 gdb 调试二进制文件

我目前有一个二进制程序,通常会在使用一段时间后结束锁定。当单击屏幕右侧的栏并用鼠标左键快速移动它时,我可以引起它。

例如,我正在使用以下命令执行这样的程序:

LD_LIBRARY_PATH=/arquivos/Gtk+-3.4.0/lib/:/xorg/X11-1.4.4/lib/:/xorg/Xcb-1.4/lib/:/arquivos/Dbus-1.10.2/lib gdb ./firefox

然后我在 gdb 中输入“run”,Firefox 就加载了。使用一段时间后,它像往常一样完全锁定,背景变成纯色。

Gdb 告诉我这个:

 Thread 6 received signal SIGPIPE, Broken pipe.
 [Switching to Thread 0x7fffe2cbe700 (LWP 5192)]
 0x00007ffff7bbe96f in __libc_send (fd=214, buf=0x7fffd694b000, n=24, flags=0)
at ../sysdeps/unix/sysv/linux/x86_64/send.c:31
31  ../sysdeps/unix/sysv/linux/x86_64/send.c: No such file or directory.

with 可能有用或没用,我真的不知道。我的主要目标是发现错误背后的原因并修复它。我个人认为罪魁祸首是 Firefox 通过 LD_LIBRARY_PATH 使用的库之一,或者它们与系统默认库之间的冲突。

问题是如何去做。

相关内容