setjmp

Wenbo Yang wenbo.yang@simplnano.com
Sat Apr 28 03:18:00 GMT 2007


 > Is there has "setjmp" command in gdb?  Example:
 >
 > setjmp( a )
 > if( x )
 >     do A
 > else
 >     do B
 > longjmp a
 >
 > After longjmp a , gdb will go to setjmp(a), and the enviroment keep
 > the same as first run to there .
Maybe you can use the checkpoint related commands. But it is implemented in GDB 
as forked processes. So if your target does not support process, the checkpoint 
command may not work.

 > I think it is a meaningful function, we can debug "do A" and "do B"
 > without rerun the program.
However, actually, when you use checkpoint, GDB leaves the current process 
waiting and forks another process to go on. It gives you some convenience by 
using more resources. I think you can reorganize your code and use dummy 
function call to avoid this. Or you can reset PC and all registers, but the 
environment maybe has some differences.

Wenbo
-- 
Wenbo Yang
Department of Mathematics, Nanjing Univ. 22 Hankou Road, Nanjing, China
SimpLight Nanoelectronics Ltd. 6 Zhichun Road, 10th Floor, Beijing, China
Phone: +86-10-5126-6989 ext.110  ---  Email: wenbo.yang@simplnano.com



More information about the Gdb mailing list