http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49214

           Summary: [4.7 Regression] Broken pipe in backtrace for
                    x86_64-apple-darwin10
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: domi...@lps.ens.fr
                CC: fxcoud...@gcc.gnu.org, j...@gcc.gnu.org


Since some time -fbacktrace is enabled by default in gfortran, leading to
outputs such as

[macbook] f90/bug% a.out
 ú!    @wxyzMú!    @wxyzM
   5.2054160474760624E-145     @wx  31353
   3.1415901184082031      wxyz     77

Backtrace for this error:
  + 0   libgfortran.3.dylib                 0x0000000100004840
_gfortrani_show_backtrace + 32
  + 1   a.out                               0x0000000100000d7f MAIN__ + 9
  + 2   a.out                               0x0000000100000db7 main + 54
  + 3   a.out                               0x0000000100000838 start + 52
  + 4   ???                                 0x0000000000000001 0x0 + 1
Abort

Since revision 174030, on x86_64-apple-darwin10 they have been replaced with

[macbook] f90/bug% a.out
 ú!    @wxyzMú!    @wxyzM
   5.2054160474760624E-145     @wx  31353
   3.1415901184082031      wxyz     77

Backtrace for this error:
 #0  /Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out[0x100003B77]
in  at Broken pipe

AFAIU the changes in libgfortran/runtime/backtrace.c, this has to be expected
since the pipe support seems to have been removed. I would not have bothered
too much if I dis not have a nasty side effect when the run time error is of
the kind

a.out(22437) malloc: *** error for object 0x414c000000000000: pointer being
freed was not allocated
*** set a breakpoint in malloc_error_break to debug

or

Assertion failed: (GFC_DESCRIPTOR_RANK (a) == 2 || GFC_DESCRIPTOR_RANK (b) ==
2), function matmul_r8, file ../../../work/libgfortran/generated/matmul_r8.c,
line 91.

In which case the OSX the executable enter in a weird state after having
triggered the OSX crash reporter: the executable eats half of the CPU time on
each core in the system state and a duplicate between parentheses appears. So
far the only solution I have found is to 'kill -9' the executable.
Not suitable for automatic testing. Note that compiling with -fno-stacktrace
does not help.

Reply via email to