调试 msp430 时打印 GDB 中变量的值

Has*_*san 4 c embedded gdb msp430 gdbserver

我正在使用 GDB 调试我的 msp430。我连接目标,然后加载程序的二进制文件,然后“继续”。

我的程序运行良好,但我想实时查看变量的某些值。实际上我想检查我的代码开始和代码结束的时间戳,这会给我总持续时间。

由于我对 GDB 完全陌生,因此目前我已将此行放在我的代码中

printf("Hello World\n");
Run Code Online (Sandbox Code Playgroud)

然而,没有打印任何内容,但我的代码工作正常,实际上是 LED 闪烁。

请指导我如何在调试模式下查看 GDB 中的变量值。

谢谢

小智 5

要在 gdb 中打印变量,您可以使用以下print命令

(gdb) print counter
Run Code Online (Sandbox Code Playgroud)

您可以在第 10 行设置断点break 10。然后附加一系列要在每次程序在断点 1 处停止时运行的命令commands 1。一个例子如下:

(gdb) print counter
Run Code Online (Sandbox Code Playgroud)

所以这将在第 10 行中断,打印计数器的值,然后继续程序。


Tom*_*mey 0

对于时间戳,您可能想要做的是设置两个断点,一个在代码开头,一个在代码末尾。让每个断点记录时间,例如通过调用适当的函数。您可以使用该功能设置断点来执行操作commands

但是,如果这是您想要经常执行的操作,您可能会考虑仅向程序中添加代码来执行此操作。

为了在远程调试时实时(-ish)访问变量,您可能对 gdb“跟踪点”功能感兴趣。目前此功能仅在远程调试时有效,并且它依赖于具有所需功能的远程调试服务器。跟踪点允许您在选定的点记录一些选定的变量,然后稍后检查它们。录制是以相当最小的开销完成的。