C语言中如何在语句处设置断点,进行观察
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何在语句处设置断点,进行观察相关的知识,希望对你有一定的参考价值。
C语言中如何在语句处设置断点,进行观察
首先是插入断点: 用VC6.0是一个小手的图形 在你需要的行点一下这个按钮就行 或者点鼠标右键有插入断点选项 或者直接按F9也可以
插入断点后 按F5 在断点就可以停了 这是你就可以在下面看你定义变量的值
希望对你有帮助 如果还有不明白的 在线说
参考技术A .0的调试器,那么可能你的调试手段就会受一定限制,VC下主要就是单步,步入,堆栈和寄存器的查看,变量的查看,普通断点,条件断点,内存访问断点;
如果你用OllyDbg,那么除了上述手段外,还有硬断点,内存读/写断点等
如果你用windbg的话,手段也很丰富,就是命令多了点,可能需要你去记;
大多数调试器的常用手段就是我上面说的那些了 参考技术B 用的vc编译器吗?可以在想插入断点处,点击右键,出入断点,然后进行调试程序。 参考技术C 将光标移到所要设置断点的那一行然后按F9设置断点 在这行的前面会出现一个红色的圆点。
然后按F5调试 这样就可以看到程序运行到断点处的结果了本回答被提问者采纳
如何在全局返回语句上设置条件断点?
【中文标题】如何在全局返回语句上设置条件断点?【英文标题】:How to set conditional breakpoint on return statement globally? 【发布时间】:2014-09-22 05:53:14 【问题描述】:我有一个充满功能的代码,例如:
bool f_i()
if (!f_0())
return false;
if (!f_1())
return false;
// ...
if (!f_n())
return false;
return true;
// etc...
在某些执行步骤中,一些被调用者可以返回false
,而false
会传播到所有调用者。目前很难编写错误消息(代码正在迅速更改)。在调试期间,在每个 return false;
之前都有错误消息是过多的。
是否可以使用GDB
全局在return
语句上设置条件(例如,函数返回false
)断点?
【问题讨论】:
你能把它分成多行然后断线吗?b file.cpp:12
@Ben 不,我不能。有大量的一行,其中包含return false;
。
我认为它比这复杂得多,因为整个事情都简单地转移到return f1() && f0();
。无论如何,如果归结为带有bool
转换运算符的结构和预处理器上的一点扭矩,如果足够用力(并给你一个设置断点的地方:在运算符上),它可能会起作用。祝你好运。
@WhozCraig 不错的方法。这将是最后的手段。
有AST matchers in clang++,但我想不出怎么用。顺便说一句,GDB 有 rbreak
(使用正则表达式)命令,但它只专门用于函数名称。
【参考方案1】:
在某些执行步骤中,某些被调用者可能返回 false
据我了解,您想在f_i()
中找到返回false
的第一个函数。您可以为此使用reverse debugging。
你可以:
结束当前帧执行
(gdb) 鳍
后退一步,如果返回值为false
(gdb) 逆步
如果你需要,你可以继续往回走,深入false
传播调用
(gdb) 反向鳍 (gdb) 反步
【讨论】:
函数不是一个。在不同的翻译单元中有很多类似的功能。以上是关于C语言中如何在语句处设置断点,进行观察的主要内容,如果未能解决你的问题,请参考以下文章
对于C或C++语言,VS下调试如何查看指针数组的所指向的内容?谢谢指导.