能否在应用启动后跳转至我的代码时自动触发执行中断?
运行时激活逐行中断的实现方法
通用逻辑
你不需要提前给所有行加断点,只需要在你想要激活该功能的时候,先把运行中的程序断下来,再选择用批量加断点或者逐行调试命令即可实现等效效果,操作都很简单:
GDB/LLDB 环境
- 先附加到运行中的进程,或者在程序运行时按
Ctrl + C手动断住程序 - 如果要给指定源码文件的所有行批量加断点,执行命令:
rbreak /path/to/your_source_file.c:. - 后续只要程序执行到该文件的任意一行代码都会自动中断,不需要提前预设断点;要关闭该功能直接执行
delete清除对应断点组即可 - 如果只是需要临时逐行走查,直接执行
step(逐语句,进入函数)或next(逐过程,不进函数)命令即可,每次执行一行自动断住
- 先附加到运行中的进程,或者在程序运行时按
Visual Studio 环境
- 点击顶部菜单栏「调试」-「附加到进程」,选中你正在运行的目标进程完成附加
- 点击调试工具栏的「全部中断」按钮,把程序断在当前执行位置
- 要批量加全文件断点的话,打开你要监控的源码文件,按
Ctrl + A全选所有代码,按F9即可给所有选中行一次性加断点,不需要用的时候全选再按一次F9就能批量清除 - 临时逐行调试直接按
F10(逐过程)或F11(逐语句)即可
WinDbg 环境
- 按
Ctrl + P选择正在运行的目标进程完成附加 - 按
Ctrl + Break手动断住程序 - 给指定模块的你的代码批量加断点执行命令:
bm /f your_module_name!your_source_file::* - 临时逐行调试执行
p(逐过程)或t(逐语句)命令即可
- 按
小提示:如果你的代码量很大,建议缩小批量断点的匹配范围到你实际要监控的函数区间,能大幅降低断点加载的性能开销。
内容的提问来源于stack exchange,提问作者Pavel Voronin
相关产品推荐
相关产品推荐

