Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Step bei GNU-Debugger geht nicht ... g++ Optionen falsch?

d-oli / 0 Antworten / Baumansicht Nickles

Hallo Leute


Ich habe ein kleines C++-Programm geschrieben um den GDB zu testen. Der Befehl Step beim GDB scheint nicht das zu tun was er sollte. Ich habe mich etwas mit $man gdb und $man g++ beschäftigt und bin der Meinung, dass es wohl an den Optionen für den Compiler in meinem Makefile liegt. Aber welche? Wer kann mir da weiterhelfen? 


Dank und Gruss d-oli   


MAKEFILE


----------------


CXX    = g++


LDFLAGS            = -g -pedantic -W -Wall


 


.PHONY: all clean


 


all: gdbtest


 


gdbtest.o: gdbtest.cpp


            $(CXX) -O2 -c gdbtest.cpp


 


gdbtest: gdbtest.o


            $(CXX) -o gdbtest $(LDFLAGS) gdbtest.o


 


GDB:


-------


$ gdb gdbtest


GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)


... u.s.w. ...


 


(gdb) help step


Step program until it reaches a different source line.


Argument N means do this N times (or till program stops for another reason).


 


(gdb) break main


Breakpoint 1 at 0x804860d


 


(gdb) run


Starting program: /home/omueller/cpp/gdbtest1/gdbtest


 


Breakpoint 1, 0x0804860d in main ()


 


(gdb) step


Single stepping until exit from function main, // Wieso ist die nicht vorhanden?


which has no line number information.         // Wegen der Debugoptionen 


 


textA : Hallo Welt


textB :


 


textA :


textB : Hallo Welt


0x42015574 in __libc_start_main () from /lib/tls/libc.so.6


 


C++-Source


---------------


int main(){


  int counter;


  char textA[] = "Hallo Welt", textB[sizeof(textA)] = "";


 


  std::cout<<"textA : "<<textA<<std::endl;


  std::cout<<"textB : "<<textB<<std::endl<<std::endl;


 


  for( counter = 0; textA[counter] != 0; counter ++ ){


    textB[counter] = textA[counter];


    textA[counter] = 0;


  }


 


  std::cout<<"textA : "<<textA<<std::endl;


  std::cout<<"textB : "<<textB<<std::endl<<std::endl;


   


  return 0;


}


 

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen