当我调试代码时,我所在的行将调用我创建的函数(爆炸):
vector<string> parte = explode(linha, ";");
在这一行中,我希望调试器进入“爆炸”功能。
但是,按F11键时,调试器将遍历
xstring, xutility, xmemory0, xstddef
和其他文件中的数百行,因此只有在完成所有此过程之后,才转到我的“爆炸”功能。为什么会发生这种情况?
以及如何避免这种情况? F11可能会直接履行我的职责,而不是在所有这些中介机构中“漫步”?
最佳答案
嗯,一个原因是您的explode
函数采用另一种类型的参数(例如std::string
),如果您执行 F11 ,则该参数本身将调用许多函数。
通常,在这种情况下,当您输入不想跟踪的函数时,请使用 Shift + F11 (退出)代替,这样您可以直接返回到调用站点,然后对其他任何中间调用重复该操作。在某些情况下, F10 可以减少步骤数。
有时,您可以使用一些临时变量来修改代码,以使其更易于调试。
但是,另一种方法是在explode
函数中放置一个断点。但是,只有在您感兴趣的电话之前只有几个电话的情况下,此方法才有效。有时,您可以在断点或调用者位置放置条件。其他时间,也可以在第一个断点被击中时设置第二个断点。
使用这样的一些技巧,您可以大大减少额外的步骤。
如果不需要调试窗口,也可以限制它们的可见窗口,因为某些调试窗口相对较慢(例如对于前线程),并且有时没有它们,您只需按F11几次,直到达到所需的功能。