|
From: Tom H. <to...@co...> - 2013-04-18 15:10:57
|
On 18/04/13 03:02, Tom Hughes wrote: > ! gdbserver_tests/mcbreak (stdout) > ! gdbserver_tests/mcbreak (stdoutB) > ! gdbserver_tests/mcbreak (stderrB) > ! gdbserver_tests/mcinfcallRU (stderr) > ! gdbserver_tests/mcinfcallWSRU (stderr) > ! gdbserver_tests/mcinfcallWSRU (stderrB) > ! gdbserver_tests/mcmain_pic (stdout) > ! gdbserver_tests/mcmain_pic (stderr) > ! gdbserver_tests/mcmain_pic (stdoutB) > ! gdbserver_tests/mcmain_pic (stderrB) These failiures are caused by the change I committed yesterday to respect the PT_GNU_STACK information and make stacks non-executable when possible. It seems that when GDB wants to call a function in the target it is poking an INT3 instruction onto the targets stack, then poking the address of that instruction on to the stack as the return address and resuming at the address of the function it wants to call. So when the target returns from that function it tries to execute on the stack and fails... Presumably when gdb is running the target directly it turns on execute permission for the stack? Tom -- Tom Hughes (to...@co...) http://compton.nu/ |