VisualStudio 中的断点

Breakpoints in VisualStudio

提问人:Luchian Grigore 提问时间:8/3/2011 更新时间:8/3/2011 访问量:244

问:

Visual Studio 中的断点如何工作?我之所以问这个问题,是因为我在类头中声明了一些内联函数,每当我在其中一个函数中设置断点时,我认为 IDE 也会将断点放在调用该函数的任何位置。这当然是有道理的,但内部究竟是如何完成的呢?

C++ 可视化工作室

评论


答:

5赞 Ajay 8/3/2011 #1

您放置断点的函数是内联的,这就是为什么调试器巧妙地将它们放在其他地方的原因。可能是你正在调试非调试版本。尝试

  • 禁用所有优化
  • 使函数非内联

您的问题没有要求这样做,但您可以在此处阅读断点是如何实现的。

评论

0赞 Luchian Grigore 8/3/2011
该链接实际上解释了我正在寻找的内容。禁用优化是否会使我的函数成为非内联函数,即使它们在标头中定义也是如此?
0赞 Ajay 8/3/2011
对于调试版本 - 是的。这些函数不会以内联方式编译,这将有助于调试。
0赞 Luchian Grigore 8/3/2011
如果您打算从另一个模块访问它而不导出它怎么办?
0赞 Ajay 8/3/2011
你的意思是另一个DLL正在“导出”它,对吧?好吧,在这种情况下,PDB(调试符号)和DLL将具有“调试”的信息。