Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GDB: Force through an if statement

Tags:

c

gdb

This is the structure of my code

if(someFunction())
{
  // Some code
}

where someFunction() evaluates to 0 most of the time

When GDB is at line 1 above, if I do next then // Some code will not be executed.

Is there a way to tell GDB to execute the code inside the if statement?

like image 215
Randomblue Avatar asked Apr 26 '12 09:04

Randomblue


2 Answers

I can just propose you a workaround. Have a temporary variable int i=0 and then do the if as

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

When you reach the desired position with gdb. Set i to 1 using

set i = 1

and then your loop will be executed. Of course after the loop you will have to reset you i if you don't want it executed every time.

like image 142
Azrael3000 Avatar answered Oct 04 '22 05:10

Azrael3000


You can jump to // Some code after stopping on if statement in gdb, unless // Some code was not optimized out, see 17.2 Continuing at a Different Address. Assuming you stopped on if, you can:

jump +2
like image 23
ks1322 Avatar answered Oct 04 '22 03:10

ks1322