当我调试代码时,我所在的行将调用我创建的函数(爆炸):

vector<string> parte = explode(linha, ";");

在这一行中,我希望调试器进入“爆炸”功能。

但是,按F11键时,调试器将遍历xstring, xutility, xmemory0, xstddef和其他文件中的数百行,因此只有在完成所有此过程之后,才转到我的“爆炸”功能。

为什么会发生这种情况?

以及如何避免这种情况? F11可能会直接履行我的职责,而不是在所有这些中介机构中“漫步”?

最佳答案

嗯,一个原因是您的explode函数采用另一种类型的参数(例如std::string),如果您执行 F11 ,则该参数本身将调用许多函数。

通常,在这种情况下,当您输入不想跟踪的函数时,请使用 Shift + F11 (退出)代替,这样您可以直接返回到调用站点,然后对其他任何中间调用重复该操作。在某些情况下, F10 可以减少步骤数。

有时,您可以使用一些临时变量来修改代码,以使其更易于调试。

但是,另一种方法是在explode函数中放置一个断点。但是,只有在您感兴趣的电话之前只有几个电话的情况下,此方法才有效。有时,您可以在断点或调用者位置放置条件。其他时间,也可以在第一个断点被击中时设置第二个断点。

使用这样的一些技巧,您可以大大减少额外的步骤。

如果不需要调试窗口,也可以限制它们的可见窗口,因为某些调试窗口相对较慢(例如对于前线程),并且有时没有它们,您只需按F11几次,直到达到所需的功能。

10-06 15:44
查看更多