Wie übergebe ich ein Befehlszeilenargument beim Starten von GDB unter Linux? [duplicate]

Lesezeit: 2 Minuten

Benutzeravatar von ShadyBears
Schattenbären

Ich muss im Rahmen meiner Aufgabe ein Programm debuggen, das Fehler enthält. Ich muss jedoch zuerst Befehlszeilenargumente übergeben, um dieses Problem zu lösen.

Ich tue:

gdb -tui InsertionSortWithErrors

was funktioniert, aber danach weiß ich nicht, wie ich Argumente übergeben soll. ich benutzte gdb -help und es sagt etwas über --args was ich auch versucht habe und es hat nicht funktioniert.

Ich möchte in der Lage sein, den Debugger + die GUI zu erhalten und Befehlszeilenargumente zu übergeben.

Benutzeravatar von ldav1s
ldav1s

Einmal gdb startet, können Sie das Programm mit “r Argumente“.

Wenn Sie also Ihren Code ausführen, indem Sie:

$ executablefile arg1 arg2 arg3 

Debuggen Sie es an gdb durch:

$ gdb executablefile  
(gdb) r arg1 arg2 arg3

  • Nur um das zu erweitern …. Ich betreibe meine normalerweise wie folgt: program --option1 --option2=argvalue also in gdb habe ich eingegeben: r --option1 --option2=argvalue Das war mir zunächst nicht klar.

    – Harperville

    1. Oktober 2015 um 19:00 Uhr

  • Dies ist zu Recht der am häufigsten bewertete Kommentar. Ich möchte das nur hinzufügen r steht für den gdb-Befehl runund Sie können ein wenig Hilfe dafür sehen, indem Sie eingeben help run während in gdb.

    – Carl Smotricz

    3. November 2016 um 13:24 Uhr

  • Ich möchte die Argumente nicht jedes Mal eingeben müssen, wenn ich gdb starte, ich möchte sie in meinem Befehlszeilenverlauf haben

    – Michael

    8. Dezember 2018 um 23:06 Uhr

Versuchen

gdb --args InsertionSortWithErrors arg1toinsort arg2toinsort

  • wie im Abschnitt GNU GDB-Handbuch erwähnt GDB aufrufen

    – Ruben Laguna

    22. Juni 2015 um 9:32 Uhr

  • Es wird auch erwähnt, wenn Sie laufen gdb -hdie wiederum in der Manpage erwähnt wird.

    – Pietro Saccardi

    6. April 2016 um 14:13 Uhr

  • @PietroSaccardi Es scheint eine Diskrepanz zwischen der Manpage und der zu geben -h Ausgabe, zumindest bei einigen Ubuntu-Versionen. Dies kann passieren, insbesondere wenn die Man-Datei für einen Befehl nicht so oft aktualisiert wird wie der Quellcode, der die -h Möglichkeit.

    – Treff

    14. November 2017 um 4:05 Uhr

Benutzeravatar von Fernando Gonzalez Sanchez
Fernando González Sánchez

Eine weitere Option, sobald Sie sich in der GDB-Shell befinden, bevor Sie das Programm ausführen, können Sie tun

(gdb) set args file1 file2

und prüfen Sie es mit:

(gdb) show args

  • Das ist die richtige Antwort!

    – 71GA

    9. März um 21:51 Uhr

Benutzeravatar von Alex
Alex

Ich verwende GDB7.1.1, as --help zeigt an:

gdb [options] --args executable-file [inferior-arguments ...]

IMHO ist die Reihenfolge zunächst etwas unintuitiv.

1423990cookie-checkWie übergebe ich ein Befehlszeilenargument beim Starten von GDB unter Linux? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy