By Tag: gdb
GDB 源码追踪断点
Anonymous
调试器的主要能力之一就是设置断点。 GDB(GNU 项目调试器)现在引入了一项实验性功能——源码追踪断点,它可以追踪断点所设置的源码行位置。 简介 设想您正在进行调试:您在一堆源码行上设置了断点,检查了一些值,然后有了修改代码的想法。您编辑了源码并重新编译,但保持 GDB 会话运行,输入 run 重新加载新编译的可执行文件。由于修改了源码,断点的行号发生了偏移。目前,您只能禁用现有断点并重新设置新的断点。 GDB 源码追踪断点改变了这一局面。当您使用 file:line 符号设置断点时(启用此功能后),GDB 会捕获周围源码的一个小窗口。当您重新编译并重新加载可执行文件时,GDB 会调整任何因源码变更而导致行号偏移的断点。这在临时调试会话中尤其有用,您无需在每个编辑-编译周期后手动重设断点。 设置源码追踪断点 启用源码追踪功能: (gdb) set breakpoint source-tracking enabled on 使用 file:line 符号设置断点: (gdb) break myfile.c:42 Breakpoint 1 at 0x401234: file myfile.c, line 42. GDB 现在会追踪该行周围的源码。info breakpoints 命令会显示断点是否被追踪: (gdb) info breakpoints Num Type Disp Enb Address What 1 ...