GDB:强制通过if语句

时间:2012-04-26 09:38:39

标签: c gdb

这是我的代码的结构

if(0)
{
  // Some code
}

当GDB位于上面的第1行时,如果我执行next,则// Some code将不会被执行。

有没有办法告诉GDB在if语句中执行代码?

3 个答案:

答案 0 :(得分:6)

我可以建议你一个解决方法。有一个临时变量int i=0,然后执行if as

if(i==1){
  //some code
}

使用gdb到达所需位置时。使用

i设置为1
set i = 1

然后你的循环将被执行。当然,在循环之后,如果你不想每次都执行它,你将不得不重置你。

答案 1 :(得分:3)

您可以在停留在gdb中的// Some code语句后跳转到if,除非// Some code未进行优化,请参阅17.2 Continuing at a Different Address。假设您在if停留,您可以:

jump +2

答案 2 :(得分:-3)

0表示false,因此不会进入if循环,使用

if(1)