【问题标题】:Print value of variable in GDB while debugging msp430调试 msp430 时打印 GDB 中变量的值
【发布时间】:2015-05-19 08:04:19
【问题描述】:

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

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

由于我是 GDB 的新手,目前我已将这一行放在我的代码中

printf("Hello World\n");

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

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

谢谢

【问题讨论】:

标签: c gdb embedded msp430 gdbserver


【解决方案1】:

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

(gdb) print counter

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

(gdb) break 10
Breakpoint 1 at 0x1c4d: file example.c, line 10.
(gdb) commands 1
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>print counter
>continue
>end
(gdb) continue

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

【讨论】:

  • 在最后输入 continue 后显示“程序没有运行”
【解决方案2】:

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

但是,如果这是您想要经常做的事情,您可以考虑在您的程序中添加代码来完成它。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多