This is the mail archive of the gdb@sourceware.org mailing list for the GDB 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]

Debug ARM semihosting Thumb-2 binary


Hi,

I'm debugging ARM binaries compiled for the semihosting interface (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471c/CHDJHHDI.html ). The binaries run under qemu-system-arm and I'm using QEMU's gdb remote target interface.

In general, this works fine, except when such binaries are Thumb-2 and perform system calls. The reason is that for Thumb-2, the system call interface of the semihosting platform uses "bkpt 0xab" (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491c/CJAFABBB.html ). GDB intercepts this bkpt, halts the execution with a SIGINT message and does not pass it on to the debugged process. If the process is then continued, it behaves as if the system call/bkpt in question never was executed

Using "handle SIGINT pass" does not change this.

Is there another way to tell gdb to ignore those particular bkpt instructions and execute them normally? I'm using gdb 7.4 (7.2 behaves the same).

Thanks,


Jonas



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