Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用GDB加速调试? 我用GDB调试一个压缩程序C++程序。我花了10分钟才找到要调试的有趣函数。然后我检查变量,理解程序的各个部分并重新编译,然后再次运行GDB,直到我再次达到目标_Gdb - Fatal编程技术网

是否可以使用GDB加速调试? 我用GDB调试一个压缩程序C++程序。我花了10分钟才找到要调试的有趣函数。然后我检查变量,理解程序的各个部分并重新编译,然后再次运行GDB,直到我再次达到目标

是否可以使用GDB加速调试? 我用GDB调试一个压缩程序C++程序。我花了10分钟才找到要调试的有趣函数。然后我检查变量,理解程序的各个部分并重新编译,然后再次运行GDB,直到我再次达到目标,gdb,Gdb,这个过程有时有点费时。我不知道是否能以某种方式加速。有什么想法吗 谢谢,这里有gdb固定指令(一种小型语言,可以自动调试过程)。还有一些python绑定可以帮助您自动化gdb。调试应该是最后的手段,您应该编写测试,或者更多地考虑您编写的内容,这将大大加快调试过程(因为您可能不再需要调试,或者很少需要调试)。有gdb固定指令(一种小型语言,可以自动执行调试过程)。还有一些python绑定可以帮助您自动化gdb。调试应该是最后的手段,您应该编写测试,或者更多地考虑您编写的内容,这将大大加快调试过程(

这个过程有时有点费时。我不知道是否能以某种方式加速。有什么想法吗


谢谢,这里有gdb固定指令(一种小型语言,可以自动调试过程)。还有一些python绑定可以帮助您自动化gdb。调试应该是最后的手段,您应该编写测试,或者更多地考虑您编写的内容,这将大大加快调试过程(因为您可能不再需要调试,或者很少需要调试)。

有gdb固定指令(一种小型语言,可以自动执行调试过程)。还有一些python绑定可以帮助您自动化gdb。调试应该是最后的手段,您应该编写测试,或者更多地考虑您编写的内容,这将大大加快调试过程(因为您可能不再需要调试,或者很少需要调试)。

在运行GDB之前,您肯定不能让编译器优化代码以使其运行得更快。你写过好的单元测试吗?拥有一个像样的测试套件可能会为您节省大量时间,并防止您在调试器中花费过多的时间。

在运行GDB之前,您肯定无法让编译器优化代码以使其运行得更快。你写过好的单元测试吗?拥有一个像样的测试套件可能会为您节省大量时间,并防止您在调试器中花费过多的时间。

编写测试,使用各种输入运行有趣的函数。然后您就可以调试函数,而不必担心代码的其余部分。

编写测试,使用各种输入运行有趣的函数。然后您就可以调试该函数,而不必担心代码的其余部分。

您是否尝试过UndoDB:

它允许您来回地进行可逆调试。虽然gdb现在有自己的可逆调试,但在这种模式下运行会有巨大的减速——20000x甚至更糟。UndoDB将以大约1.7倍的速度运行,因此您可以快速进入感兴趣的部分,然后来回地了解您的bug

(披露:我为撤销软件工作)

您是否尝试过撤销数据库:

它允许您来回地进行可逆调试。虽然gdb现在有自己的可逆调试,但在这种模式下运行会有巨大的减速——20000x甚至更糟。UndoDB将以大约1.7倍的速度运行,因此您可以快速进入感兴趣的部分,然后来回地了解您的bug


(披露:我为撤销软件工作)

在GNU/Linux下,您还可以尝试:

checkpoint
...
restore n
如果您的程序不是多线程的(
checkpoint
在内部使用,那么同样的限制也适用)


它应该为您提供开始调试所需的10分钟

在GNU/Linux下,您还可以尝试:

checkpoint
...
restore n
如果您的程序不是多线程的(
checkpoint
在内部使用,那么同样的限制也适用)


它应该为您提供开始调试所需的10分钟

听起来你需要一个或两个单元测试,即使这只是你试图开始工作的一件事,然后忘记,你仍然可以使用单元测试模型,即使你不需要一个完整的测试套件-只需编写一个额外的程序来运行该功能(可能是从程序其余部分的前一次运行中存储的罐装输入)。听起来你需要一个或两个单元测试,即使这只是你试图开始工作的一件事,那么忘掉它,你仍然可以使用单元测试模型,即使你不需要一个完整的测试套件-只需编写一个额外的程序来运行该功能(可能是使用从程序其余部分的前一次运行中存储的罐装输入).非常感谢。你能给我一些关于C++初学者的单元测试的链接吗?感谢您在谷歌C++测试框架的入门或是Boost测试库的文档。他们应该给你做什么的大致想法。非常感谢。你能给我一些关于C++初学者的单元测试的链接吗?感谢您在谷歌C++测试框架的入门或是Boost测试库的文档。他们应该给你做什么的大致思路。