我正在使用Debian在NetBeans 7.4中调试C ++ 11项目,并且我对此代码有疑问:
shared_ptr<my_obj> node;
node->func();
调试第二行时,调试器会执行shared_ptr代码(&#39; - &gt;&#39;运算符重载代码)。
有没有办法告诉调试器只调试项目代码?喜欢&只是我的代码&#39;在VS?
我不是在谈论步骤与步入问题。当我尝试进入时,我希望调试器进入我自己的代码,这意味着func()中的代码。相反,它会进入shared_ptr ->
运算符重载代码。
使用&#39; Just My Code&#39;功能,调试器跳过c ++代码,直接进入有趣的&#39;代码
答案 0 :(得分:0)
据推测,netbeans正在使用GUI前端到本机linux调试器gdb
。您指的问题是next
和step
命令之间的区别。
查看this simple tutorial,似乎netbeans界面将这些称为&#34; Step Over&#34; (带有弯曲箭头的按钮)和&#34 ;分别进入&#34; (带有直箭头的按钮);你想使用前者而不是后者。具有笔直向上箭头的按钮(&#34; Step Out&#34; )相当于gdb&#39; s finish
。
更具体地说,听起来你想要跳过第一行宣布shared_ptr而步入下一行。如果你发现自己不小心碰到了一些你不感兴趣的东西(或者你曾经在某个地方做过),走出去应该带你回到调用这个函数的行你完成了这个电话。
如果问题是当您介入时调试器输入shared_ptr的->
运算符代码,您应该可以通过步出来完成此操作。然后,GUI可能会显示您仍在同一node->func()
行(->
调用已完成,返回指向共享对象的指针)。如果您现在再次按单步执行,则应该位于my_obj::func
的第一行。