在Visual Studio中调试C ++代码:在非预定时间内进行分解

时间:2011-05-18 05:52:59

标签: c++ visual-studio debugging

我有一个关于在Visual Studio中进行调试的问题(2010年,如果真的很重要)。有时我正在运行一个应用程序,我想打破它来调试或查看它挂起的位置等。但是,我发现很常见的“突破点”似乎是在一些随机的.c文件中在标准库中。我理解为什么这是(它在某处执行某种方法),但我想知道它在我编写的代码中的最后一点是什么。有没有办法做到这一点? 如果我尝试“步”,调试器似乎总是返回类似“没有代码来调试当前位置”或类似的东西,我猜这意味着它正在通过一些机器代码。再说一遍,这很好,但我想知道main.cpp文件中最后一次执行的调用是什么;有没有办法获得这些信息?调用堆栈似乎也没有帮助,它总是有一个非敏感调用列表,即使我可以找到来自我的main.cpp的调用堆栈中的最新点,它似乎没有提供任何有用的信息(如行号或函数名称......我 认为它显示了受损的名字。)

大多数人在这种情况下做了什么?我道歉,我知道我是初学者,对不起,我没有具体的例子,但我觉得我经常在工作中看到这一点。

感谢任何帮助,谢谢!

ķ

2 个答案:

答案 0 :(得分:5)

暂停后,程序会在此时观察调用堆栈( Debug-> Windows-> Call Stack ),找到代码最后一层的位置并获取点击调用堆栈窗口中的相应行。

答案 1 :(得分:1)

“Step Out”命令, Shift + F11 ,将完成当前函数的执行并在返回后立即中断。

您可以使用Step Out几次退出系统调用代码。

"Step Into Just My Code"选项听起来像是你想要的,但我从来没有用过。