Re: [patch, mips, stabs] Do any MIPS targets use stabs?
On Mon, 2013-01-07 at 12:54 -0800, Steve Ellcey wrote: > On Mon, 2013-01-07 at 20:38 +, Richard Sandiford wrote: > > > > > Ah, sorry, this reminded me of a patch I'd written a year ago and never > > got around to sanity-checking. Does it fix the problem for you? > > > > Richard > > It fixes my small test case, I will try it on the full testsuite > overnight. > > Steve The full testsuite worked fine too, so I think this should be checked in. Given this fix I will probably leave the stab support alone for now, though I would have no objection if someone wanted to remove it for MIPS. Steve Ellcey sell...@mips.com
Re: [patch, mips, stabs] Do any MIPS targets use stabs?
On Mon, 2013-01-07 at 20:38 +, Richard Sandiford wrote: > > Ah, sorry, this reminded me of a patch I'd written a year ago and never > got around to sanity-checking. Does it fix the problem for you? > > Richard It fixes my small test case, I will try it on the full testsuite overnight. Steve
Re: [patch, mips, stabs] Do any MIPS targets use stabs?
On Mon, 2013-01-07 at 20:30 +, Richard Sandiford wrote: > "Steve Ellcey " writes: > > While testing all the variations of my mips-mti-elf target I found that > > a number of debug tests like gcc.dg/debug/trivial.c fail when compiled > > using a stabs debug flag (-gstabs3 for example) and -mips16. While running > > the GNU simulator I get: > > > > mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278 > > program stopped with signal 10 (User defined signal 1). > > FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test > > Do you know why selecting stabs causes an execution failure? > That shouldn't happen regardless of whether the debug info itself is good. > > I don't mind removing stabs from all MIPS targets, but I'd like to > understand why we get the execution failure first. > > Richard No, I don't know why I get the execution failure. I dug around a bit but could not figure out what or where the problem was coming from. I assume the executable is accessing a bad address or an uninitialized bit of memory somewhere but I could not figure out where. The actual executable code is the same with or without the debug information. I don't even know if this is a bug in GCC or in the GNU simulator. My inability to figure out where the problem was occurring is the main reason I started wondering why I even cared about stabs. Steve Ellcey sell...@mips.com
Re: [patch, mips, stabs] Do any MIPS targets use stabs?
Richard Sandiford writes: > "Steve Ellcey " writes: >> While testing all the variations of my mips-mti-elf target I found that >> a number of debug tests like gcc.dg/debug/trivial.c fail when compiled >> using a stabs debug flag (-gstabs3 for example) and -mips16. While running >> the GNU simulator I get: >> >> mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278 >> program stopped with signal 10 (User defined signal 1). >> FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test >> >> Since I don't actually care about STABS I was looking at undefining >> DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes >> the failures a moot point for me since I would no longer run the tests >> with any -stabs flags. >> >> But I was wondering, are there any MIPS targets that do use stabs? If not >> maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h >> instead of undefing it just for my targets. Opinions? > > Do you know why selecting stabs causes an execution failure? > That shouldn't happen regardless of whether the debug info itself is good. Ah, sorry, this reminded me of a patch I'd written a year ago and never got around to sanity-checking. Does it fix the problem for you? Richard Index: gas/config/tc-mips.c === --- gas/config/tc-mips.c2012-01-28 14:47:10.0 + +++ gas/config/tc-mips.c2012-01-28 14:48:14.0 + @@ -1476,7 +1476,9 @@ static const pseudo_typeS mips_pseudo_ta {"section", s_change_section, 0}, {"short", s_cons, 1}, {"single", s_float_cons, 'f'}, + {"stabd", s_mips_stab, 'd'}, {"stabn", s_mips_stab, 'n'}, + {"stabs", s_mips_stab, 's'}, {"text", s_change_sec, 't'}, {"word", s_cons, 2}, @@ -16817,9 +16819,7 @@ s_insn (int ignore ATTRIBUTE_UNUSED) static void s_mips_stab (int type) { - if (type == 'n') -mips_mark_labels (); - + mips_mark_labels (); s_stab (type); }
Re: [patch, mips, stabs] Do any MIPS targets use stabs?
"Steve Ellcey " writes: > While testing all the variations of my mips-mti-elf target I found that > a number of debug tests like gcc.dg/debug/trivial.c fail when compiled > using a stabs debug flag (-gstabs3 for example) and -mips16. While running > the GNU simulator I get: > > mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278 > program stopped with signal 10 (User defined signal 1). > FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test > > Since I don't actually care about STABS I was looking at undefining > DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes > the failures a moot point for me since I would no longer run the tests > with any -stabs flags. > > But I was wondering, are there any MIPS targets that do use stabs? If not > maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h > instead of undefing it just for my targets. Opinions? Do you know why selecting stabs causes an execution failure? That shouldn't happen regardless of whether the debug info itself is good. I don't mind removing stabs from all MIPS targets, but I'd like to understand why we get the execution failure first. Richard
[patch, mips, stabs] Do any MIPS targets use stabs?
While testing all the variations of my mips-mti-elf target I found that a number of debug tests like gcc.dg/debug/trivial.c fail when compiled using a stabs debug flag (-gstabs3 for example) and -mips16. While running the GNU simulator I get: mips-core: 1 byte read to unmapped address 0xe820 at 0x80020278 program stopped with signal 10 (User defined signal 1). FAIL: gcc.dg/debug/trivial.c -gstabs3 -O execution test Since I don't actually care about STABS I was looking at undefining DBX_DEBUGGING_INFO in mips-mti-elf.h and mips-mti-linux.h which makes the failures a moot point for me since I would no longer run the tests with any -stabs flags. But I was wondering, are there any MIPS targets that do use stabs? If not maybe we should just remove the define of DBX_DEBUGGING_INFO from mips.h instead of undefing it just for my targets. Opinions? I saw the discussion about removing STABS completely from GCC, etc. but it looks like there is still some users who want it on some targets. Here is my default patch which just undef's it for the mti targets. Steve Ellcey sell...@mips.com 2013-01-07 Steve Ellcey * config/mips/mips-mti-elf.h: undef DBX_DEBUGGING_INFO. * config/mips/mips-mti-linux.h: Ditto. diff --git a/gcc/config/mips/mti-elf.h b/gcc/config/mips/mti-elf.h index f6b38a5..f90b060 100644 --- a/gcc/config/mips/mti-elf.h +++ b/gcc/config/mips/mti-elf.h @@ -41,3 +41,6 @@ along with GCC; see the file COPYING3. If not see \ /* Configuration-independent MIPS rules. */ \ BASE_DRIVER_SELF_SPECS + + +#undef DBX_DEBUGGING_INFO diff --git a/gcc/config/mips/mti-linux.h b/gcc/config/mips/mti-linux.h index cda9bdc..c12138f 100644 --- a/gcc/config/mips/mti-linux.h +++ b/gcc/config/mips/mti-linux.h @@ -45,3 +45,5 @@ along with GCC; see the file COPYING3. If not see \ /* Use the standard linux specs for everything else. */ \ LINUX64_DRIVER_SELF_SPECS + +#undef DBX_DEBUGGING_INFO