🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by David Callahan Thu, 21 Dec 1989 01:22
Less than useful line number near inline function
#2107
Author: David Callahan
Date: Thu, 21 Dec 1989 01:22
60 lines
2729 bytes
When the result an inline function is an argument to an out-of-line
function, the line number information passed to gdb indicates that
out-of-line call occurs at the definition point of the inline function.

Example, both g++ and gdb configured for sun3-nfp-os4:

---------------- bug.c ------------
struct foo {
      int i ;
      int val() { return i ; }
} ;

extern "C" void bar(int) ;

main() {
      foo f ;
      bar(f.val()) ;
} 

void bar(int i) {

}
------------- sample compilation ---------
dactyl% g++ -v -o bug -g bug.c
gcc version 1.36.1 (based on GCC 1.36)
 /usr/local/lib/g++-1.36.1/gcc-cpp -+ -v -undef -D__GNUC__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -Dmc68020 bug.c /usr/tmp/cca12599.cpp
GNU CPP version 1.36
 /usr/local/lib/g++-1.36.1/gcc-cc1plus /usr/tmp/cca12599.cpp -quiet -dumpbase bug.c -g -version -o /usr/tmp/cca12599.s
GNU C++ version 1.36.1 (based on GCC 1.36) (68k, MIT syntax) compiled by GNU C version 1.36.
default target switches: -m68020 -mc68020 -mbitfield
 /usr/local/lib/g++-1.36.1/gcc-as -mc68020 -o bug.o /usr/tmp/cca12599.s
 /usr/local/lib/g++-1.36.1/gcc-ld -o bug -e start -dc -dp -Bstatic /lib/crt0.o /lib/Fcrt1.o bug.o -lg++ /usr/local/lib/g++-1.36.1/gcc-gnulib -lg -lc
-------- sample debugging session ------------
dactyl% gdb bug
GDB 3.4, Copyright (C) 1989 Free Software Foundation, Inc.
There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details.
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "info copying" to see the conditions.
Reading symbol data from /home/tera/david/Doc/Web2/bug...done.
Type "help" for a list of commands.
(gdb) break bar
Reading in symbols for bug.c...done.
Breakpoint 1 at 0x22ca: file bug.c, line 15.
(gdb) run
Starting program: /home/tera/david/Doc/Web2/bug 

Bpt 1, bar (i=0) (bug.c line 15)
15	}
(gdb) where
#0  bar (i=0) (bug.c line 15)
#1  0x22ba in main () (bug.c line 3)
(gdb) quit
The program is running.  Quit anyway? (y or n) y
dactyl% 
---------------------------
Note that in response to "where", gdb reports the call to "bar" to be
at line 4 rather than 10.

David Callahan  				       david@tera.com
Tera Computer Co. 400 North 34th Street, Suite 300  Seattle WA, 98103
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads