GDB:强制通过if语句

Ran*_*lue 6 c gdb

这是我的代码的结构

if(someFunction())
{
  // Some code
}
Run Code Online (Sandbox Code Playgroud)

当GDB位于上面的第1行时,如果我这样做,someFunction()0不会执行.

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

Azr*_*000 6

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

if(i==1){
  //some code
}
Run Code Online (Sandbox Code Playgroud)

当您使用gdb到达所需位置时.设置i为1使用

set i = 1
Run Code Online (Sandbox Code Playgroud)

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


ks1*_*322 4

您可以在 gdb 中的// Some codestop onif语句后跳转到,除非// Some code没有优化掉,请参阅17.2 在不同地址继续。假设您停在if,您可以:

jump +2
Run Code Online (Sandbox Code Playgroud)