gcc45 wrong debug info?

Eric Dedrick dedrick at vbnm.net
Mon Feb 28 02:36:56 UTC 2011


Hmm.  When I compile with -gstabs -ggdb, at least addr2line and gdb
can at least see the correct line info.  The info below is correct
except I don't know what's up with the argc thing.

Ideas?

Thanks.

----------------------------------------------------------------------
Breakpoint 1, main (argc=Cannot access memory at address
0x8000ffffe41c
) at interreflect_driver.c:9
(gdb) info breakpoints
Num Type           Disp Enb Address            What
1   breakpoint     keep y   0x0000000000400fed in main at
interreflect_driver.c:9
	breakpoint already hit 1 time
2   breakpoint     keep y   0x00000000004013bb in main at
interreflect_driver.c:103
3   breakpoint     keep y   0x0000000000401cd3 in
reconstruction_load_points at interreflect3d.c:296
4   breakpoint     keep y   0x0000000000404419 in reconstruction_prune
at interreflect3d.c:1107
----------------------------------------------------------------------
On Sun, Feb 27, 2011 at 07:30:38PM -0500, Eric Dedrick wrote:
> Wondering if anyone has encountered this problem where gdb/gcc doesn't
> seem to be getting the line number info right.
> 
> I compiled code in as
> ----------------------------------------------------------------------
> gcc45 -g -W -Wall -O0 -std=c99 -D_BSD_SOURCE -DDEBUG -D__BSD_VISIBLE
> -DFREEBSD  -c interreflect3d.c 
> -o x86-debug/objects/interreflections/interreflect3d.o
> 
> gcc45 -g -W -Wall -O0 -std=c99 -D_BSD_SOURCE -DDEBUG -D__BSD_VISIBLE
> -DFREEBSD interreflect_driver.c
> x86-debug/objects/interreflections/interreflect3d.o 
> -o x86-debug/bin/interreflect_driver 
> -I./ 
> -Ix86-debug/include
> -Ix86-debug/../external/include 
> -Lx86-debug/../external/lib
> -llapack -lf77blas -lcblas -latlas -lgfortran
> ----------------------------------------------------------------------
> 
> and then I go to debug.  I seem to stop in my function ok, locals and
> such seem ok, gdb seems to handle OK, except the line number
> information is wrong:
> 
> #0  0x000000000040467b in reconstruction_prune (r=0x7fffffffe420,
> intensity_threshold_min=1, 
>     intensity_threshold_max=999999, jump_discontinuity_threshold=100,
>     clustersize=5)
>     at interreflect3d.c:296
> #1  0x00000000004013ef in main (argc=26, argv=0x7fffffffe620) at
> interreflect_driver.c:103
> 
> For #0, the correct line is 1108, not 296.  #1 is correct.  
> 
> This incorrect line number info is giving me grief while I'm trying to
> step through my code.
> 
> Anyone have a hunch what's going on here?
> 
> Thanks.
> 


More information about the freebsd-questions mailing list