我正在 Debian 下的 NetBeans 7.4 中调试 C++ 11 项目,我遇到了以下代码的问题:
shared_ptr<my_obj> node;
node->func();
调试第二行时,调试器进入 shared_ptr 代码('->' 运算符重载代码)。
有没有办法告诉调试器只调试项目代码?喜欢 VS 中的“仅我的代码”吗?
我不是在谈论跨步与步入问题。当我尝试进入时,我希望调试器进入我自己的代码,即 func() 中的代码。相反,它进入 shared_ptr ->
运算符重载代码。
使用“仅我的代码”功能,调试器会跳过 c++ 代码,直接进入“有趣”的代码
最佳答案
据推测,netbeans 正在对 native linux 调试器 gdb
使用 GUI 前端。您所指的问题是 next
和 step
命令之间的区别。
查看this simple tutorial ,似乎 netbeans 界面将它们分别称为“Step Over”(带弯曲箭头的按钮)和“Step Into”(带直向下箭头的按钮);你想使用前者而不是后者。带有直向上箭头的按钮(“Step Out”)相当于 gdb 的 finish
。
更具体地说,听起来您想跳过声明 shared_ptr 的第一行并进入下一行。如果您发现自己不小心进入了您不感兴趣的地方(或者您已经完成了某个地方),退出 应该会带您回到调用您进入的函数的那一行完成通话。
如果问题是调试器在您介入时输入了 shared_ptr 的 ->
运算符代码,您应该能够通过 step out 解决这个问题。然后 GUI 可能会显示您仍在同一 node->func()
行上(->
调用已完成返回指向共享对象的指针)。如果您现在再次按 step in,您应该位于 my_obj::func
的第一行。
关于c++ - NetBeans C++ 中是否有 "just my code"功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24632659/