C++ 当我在GDB中设置断点时,对于c++;文件,它到底在哪里断开?
我想知道它到底会在什么地方断裂,以及在这次事件之前和之后会执行什么 2例:线路和功能 行案例:C++ 当我在GDB中设置断点时,对于c++;文件,它到底在哪里断开?,c++,debugging,gdb,C++,Debugging,Gdb,我想知道它到底会在什么地方断裂,以及在这次事件之前和之后会执行什么 2例:线路和功能 行案例: (gdb) break test.c:851 代码: 这会执行configure()吗?还是不 功能案例: (gdb) TestClass::initialize() 代码: 它会执行setup()吗?根据我的经验,上一行的代码一旦完成,gdb就会中断。您可以通过从断点开始单步执行来验证这一点,您将看到configure函数中的代码将被执行,值将返回到第851行,此时return关键字将启动并返回
(gdb) break test.c:851
代码:
这会执行configure()吗?还是不
功能案例:
(gdb) TestClass::initialize()
代码:
它会执行setup()吗?根据我的经验,上一行的代码一旦完成,gdb就会中断。您可以通过从断点开始单步执行来验证这一点,您将看到configure函数中的代码将被执行,值将返回到第851行,此时
return
关键字将启动并返回该值。根据我的经验,上一行的代码完成后,gdb将中断。您可以通过从断点单步执行来验证这一点,您将看到configure函数中的代码将被执行,并且值将返回到第851行,此时return
关键字将启动并返回该值。通常,在编译以进行调试时,断点在源行的第一条指令之前停止。但是,当代码经过优化时,内联和指令重新排列可能会导致错误。当然,在汇编指令上设置断点
通常,它不会执行您的行或函数的第一行。但你应该知道,在某些情况下,情况可能并非如此。请注意,gdb取决于提供给它的信息,因此结果可能因语言/编译器而异。通常,在编译用于调试的源代码行的第一条指令之前,断点会停止。但是,当代码经过优化时,内联和指令重新排列可能会导致错误。当然,在汇编指令上设置断点
通常,它不会执行您的行或函数的第一行。但你应该知道,在某些情况下,情况可能并非如此。请注意,gdb取决于提供给它的信息,因此结果可能因语言/编译器而异。调试器在断点中命名代码的第一条机器指令之前停止程序。调试器在断点中命名代码的第一条机器指令之前停止程序。行大小写,不确定函数的具体情况行的具体情况,不确定函数的具体情况
(gdb) TestClass::initialize()
849 initialize(){
850 setup();
851 return configure();
852