如何解决遇到断点时,是否可以执行一组GDB命令?
我正在尝试通过注册与特定断点相关的一组命令来实现类似“半主机”的功能,例如:
print buffer[0]
cont
因此该计划将模拟值实时转储到GDB客户端控制台中,从而简化了开发过程。
当碰到第38行(例如)的断点时,GDB是否有可能执行上述示例命令? (我将需要在另一个断点上运行不同的命令集)
解决方法
您在gdb中添加的每个断点都有一个数字。您可以看到带有i b
的数字(info breakpoints
的缩写)。假设您要向断点2添加命令,只需键入commands 2
并按Enter。现在,键入您希望gdb在命中断点2时运行的命令(每行一个)。当您要完成输入命令时,请输入end
。
提示:如果希望gdb继续执行而不是停止执行,则可以在continue
之前添加end
命令。也就是说,如果您仅添加到断点以向其添加命令,但又不希望执行在此停下来。例如,如果您只想打印某个变量的值,或者即使您要创建另一个断点,但前提是先到达某些特定的代码路径。可能性是无限的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。