我正在开发一个使用 GNU 自动工具的项目,因此为了使用 gdb 调试代码,我从 libtool 中运行 gdb:
libtool --mode=execute gdbtui foobar
是否可以重新加载项目的修改版本,而不必退出 gdb/libtool 并重新启动?
libtool --mode=execute
创建一个传递给 gdb 的临时可执行文件。该可执行文件在重建时被删除。诀窍是用类似的东西重新创建它
libtool --mode=execute echo ./hello
(Libtool 将重新创建临时可执行文件并将其名称传递给echo
命令。您可以使用任何其他命令代替echo
, e.g. true
抑制输出,甚至抑制不存在的输出。)
要重新加载可执行文件,请使用 gdbfilefilename https://sourceware.org/gdb/current/onlinedocs/gdb/Files.html#index-file命令文件。 gdb 在启动时显示可执行文件的真实名称:
$ libtool --mode=execute gdb --args ./hello
...
Reading symbols from /path/to/.libs/lt-hello...done.
(gdb)
gdb也显示info inferiors https://sourceware.org/gdb/current/onlinedocs/gdb/Inferiors-and-Programs.html#index-info-inferiors命令:
(gdb) info inferiors
Num Description Executable
* 1 <null> /path/to/.libs/lt-hello
当然,通过上述echo
命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)