Can bochs trace "IRET"?
Posted: Thu Jan 05, 2006 4:16 am
I am debugging my ISR.
I placed two nop and a hlt before iret.
I use 's' command to step over each instruction
It goes well before ISR does iret.
But when it comes to IRET,the debugger freezed.Just like this:
I have to use ctrl+c to make my program continue.Again,it comes to the timer interrupt's beginning.A loop!
by the way,if I enable keyboard and disable timer,there is similar problem.
I use the way of keeping print 'S' to see if my program is not in ISR.So,I think,when ISR returned ,it should continue to print 'S'.But the problem is screen freezed.
I think the debugger should return to where it was before the interrupt occured after doing 'iret'.
Can anyone explain this problem?
I placed two nop and a hlt before iret.
I use 's' command to step over each instruction
It goes well before ISR does iret.
But when it comes to IRET,the debugger freezed.Just like this:
Code: Select all
(0) [0x00009f18] 0010:00009f18 (unk. ctxt): nop ; 90
<bochs:132> s
Next at t=-675184644
(0) [0x00009f19] 0010:00009f19 (unk. ctxt): hlt ; f4
<bochs:133> s
Next at t=-675184643
(0) [0x00009f1a] 0010:00009f1a (unk. ctxt): add esp, 0x8 ; 81c40800
0000
<bochs:134> s
_(this is the cursor)
by the way,if I enable keyboard and disable timer,there is similar problem.
I use the way of keeping print 'S' to see if my program is not in ISR.So,I think,when ISR returned ,it should continue to print 'S'.But the problem is screen freezed.
I think the debugger should return to where it was before the interrupt occured after doing 'iret'.
Can anyone explain this problem?