我一直在环顾四周,但无法弄清楚如何在GDB中打印出评估结果.例如,在下面的代码中:
if (strcmp(current_node->word,min_node->word) > 0)
min_node = current_node;
Run Code Online (Sandbox Code Playgroud)
(上面我正在尝试一种检查字符串字母顺序的可能方法,但并不完全确定它是否正常工作.)
现在,我可以观察min_node并查看值是否发生变化,但在更复杂的代码中,这有时会更复杂.我想知道是否有一种简单的方法来观察GDB /程序流当前所在行的测试评估.
Mar*_*wis 16
如果这是你要求的,那么gdb中没有表达式单步执行.
您的选择(从最常见到最不常用):
print strcmp(current_node->word,min_node->word).令人惊讶的是,这有效:gdb可以通过将代码注入正在运行的程序并让它执行代码来评估函数调用.当然,如果功能有副作用或可能崩溃,这是相当危险的; 在这种情况下,它是如此无害,人们通常不会考虑潜在的问题.| 归档时间: |
|
| 查看次数: |
11929 次 |
| 最近记录: |