Debugga C kod med emacs och gdb: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
Line 36: Line 36:
{{Box Kommando|(gdb) break main|Breakpoint 1 at 0x400480: file main.c, line 8.}}
{{Box Kommando|(gdb) break main|Breakpoint 1 at 0x400480: file main.c, line 8.}}
Kör sedan programmet fram till denna brytpunkt genom att köra kommandot run eller r:
Kör sedan programmet fram till denna brytpunkt genom att köra kommandot run eller r:
{{Box Kommando|(gdb) r|Starting program: /home/peter/tmp/hello/calcsum  
{{Box Kommando|(gdb) r|
Starting program: /home/peter/tmp/hello/calcsum  


Breakpoint 1, main () at main.c:8}}
Breakpoint 1, main () at main.c:8}}
Ett fönster med koden ska nu öppnas i ett emacs fönster:
Ett fönster med koden ska nu öppnas i ett emacs fönster:
[[Image:gdb_in_emacs_1.png|center]]
[[Image:gdb_in_emacs_1.png|center]]
Öppna ett fönster i emacs som visar alla lokala variabler i nuvarande funktion genom menyn Gud => GDB-Windows => Locals. Exekvera sedan 2 rader med hjälp av next kommadot:
{{Box Kommando|(gdb) n 2|}}
Man kan nu se i locals fönstret att i och sum har blivit uppdaterade till 100 resp. 4950:
[[Image:gdb_in_emacs_2.png|center]]


[[Category:Gentoo Linux]]
[[Category:Gentoo Linux]]

Revision as of 01:27, 13 April 2008

Denna guide visar hur man kommer igång med att debugga C kod med gdb. gdb startas i emacs för att kunna på ett enklare sätt sätta brytpunkter, titta på variabler, titta på koden m.m. Program som måste vara installerade:

  • gcc
  • gdb
  • emacs

Kodexempel

Följande kod används i denna guide:

Template:Box Kod

Kompilera koden med debuggstöd

Kompilera koden med debuggstöd: Template:Box Kommando

Debugga koden

Börja med att starta igång emacs i samma katalog som koden och ditt kompilerade program: Template:Box Kommando

Starta sedan gdb i emacs genom att trycka på M+x och skriva kommandot gdb. Emacs kommer sedan att fråga: Run gdb (like this): gdb --annotate=3 calcsum. Tryck bara på Enter för att acceptera kommandot. Börja sedan med att sätta en brytpunkt på funktionen main(): Template:Box Kommando Kör sedan programmet fram till denna brytpunkt genom att köra kommandot run eller r: Template:Box Kommando Ett fönster med koden ska nu öppnas i ett emacs fönster:

Öppna ett fönster i emacs som visar alla lokala variabler i nuvarande funktion genom menyn Gud => GDB-Windows => Locals. Exekvera sedan 2 rader med hjälp av next kommadot: Template:Box Kommando Man kan nu se i locals fönstret att i och sum har blivit uppdaterade till 100 resp. 4950: