MIPS Linux has different values assigned to signals than X86 or PPC Linux. The result is that a SIGBUS on MIPS (value 0xA) is reported as SIGUSR1, since that signal has the that value on X86. This causes confusion (obviously). Telling gdb to handle SIGUSR1 will cause it to respond to SIGBUS but ignore SIGUSR1 (which has the value 0x16 on MIPS). I didn't find a bug report for this in Bugzilla. I have trouble believing that this problem has gone unnoticed. The attached patch adds target_signal->internal_signal translation, and vice versa, for MIPS Linux targets. I adapted the code from target_symbol_from_host() and do_target_symbol_to_host()in gdb/common/signals.c. Other than being poor names, these functions and the wrappers around them seem unnecessarily complicated. In particular, I left out EXE_BAD_* translations because they appear to be darwin-specific and translations for REALTIME_LO/HI seem to be obsolete. ChangeLog-2006 mentions removing these defines. Which leads me to some questions: 1 -- Is there a bug report for this somewhere? 2 -- Is there any reason to implement EXE_BAD_* translations? 3 -- Is the REALTIME_LO/HI translation obsolete cruft? 4 -- Do the multiple layers of wrappers around target_ signal_{to,from}_host in signals.c serve any purpose? I'm still testing the patch. I have a core file which now displays the correct signal, but I have to create a test program where I can test the translation in the other direction. Any comments on the patch? -- Michael Eager eager@eagercon.com 1960 Park Blvd., Palo Alto, CA 94306 650-325-8077