This is the mail archive of the frysk@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Handling 'external' trap events


On Wed, Oct 11, 2006 at 01:01:25PM +0200, Mark Wielaard wrote:
> 
> It think this is the wrong thing to do. We should really skip the
> illegal instruction from the trap handler in funit-breakpoints.c. What
> we are after is using breakpoints with a program that handles its own
> sig trap events. Maybe a good way to simulate this is using setjmp and
> longjmp to return from the trap signal handler. That should be platform
> independent.
> 
Hi, Mark,
Thanks for your explanation on SyscallObserver and advise on setjmp/longjmp
to skip that instruction.

With Yong's help, I pick up sigsetjmp/siglongjmp to skip that invalid
instruction after it is executed, and to avoid that endless loop.

2006-10-16  Yao Qi  <qiyaoltc@cn.ibm.com>
 
        * funit-breakpoints.c (trap_handler): Call siglongjmp to
        * return.
        (dummy): Call sigsetjmp to skip the invalid instruction after
        it is executed for the first time on PPC64.

Now, test it on x86 and ppc64 rawhide.
[qiyao@plinuxt6 ~/build-frysk/frysk-core]$ ./TestRunner frysk.proc.TestBreakpointsRunning
testHitAndRun(frysk.proc.TestBreakpoints) ...
PASS
Running testInsertRemove(frysk.proc.TestBreakpoints) ...<<BROKEN http://sourceware.org/bugzilla/show_bug.cgi?id=3240 >>PASS
Running testAddLots(frysk.proc.TestBreakpoints) ...PASS

Time: 1.516

OK (3 tests)

OK to commit?  Thanks!!

-- 
Yao Qi

Attachment: funit-breakpoint.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]