C++ GDB Haltepunkt für die Funktionen

Ich habe Probleme mit der Verwendung von GDB auf meinem c++ - Programm. Ich möchte die Einrichtung einen break-Punkt für meine Klasse member-Funktion und ich bin mir nicht sicher über die syntax, wie es zu tun. Mein Programm arbeitet, finden gerade jetzt, und ich versuche nur zu lernen, den Gebrauch von GDB. Mein problem ist, all die Informationen finde ich auf der Linie auch wirklich nur Angebote, die mit nur einer main () - Datei und keine anderen Funktionen oder Klassen, und sofern es sich um Klassen, die nur mit einer Funktion mit eine leere return-Anweisung.

Ich habe einen binären Suchbaum Klasse. Ich will eine Pause einstellen, die Punkt für Punkt-Funktion in meinem Programm.
hier der Abschnitt meiner header-Datei.

class BST
{
    BST()
    ...
    private:
    int add((BST * root, BST *src);
}

Ich bin telneting in einem Kommandozeilen-linux-server für die Schule.
Ich kann den GDB zum laufen mit meinem Programm nur gut mit g++ -g *.cpp (es gibt auch andere Dateien, die funktionieren) und die Datei wird gespeichert als.aus.
Ich GDB mit

gdb ./a.out

bekommen und habe in den GDB. Ich kann einen break-Punkt für das leere display Funktion einwandfrei mit

b BST::disp_block()

aber wie mache ich es mit der add-Funktion, die ich versucht habe

b BST::int add(BST*, BST *)
b int BST::add(BST*, BST *)
b BST::add(BST*, BST *)

und ich habe sogar versucht mit dem argument-Namen

b BST::int add(BST * root, BST * src)
b int BST::add(BST * root, BST * src)
b BST::add(BST * root, BST * src)

und ich erhalte die Fehlermeldung

Function "____" not defined.
Make break point pending on future shared library load? (y or [n])

Wie richte ich einen break-Punkt für eine member-Funktion wie diese? Im vorausgesetzt, Uhr Punkte würde das gleiche format, wenn nicht, könnten Sie erklären, dass auch.

  • In der Abwesenheit von überlastungen oder wenn Sie möchten, zu brechen, in allen überlastungen, die b BST::add. Keine Notwendigkeit für Argumente. Beachten Sie, dass müssen Sie den namespace auch wenn sich Ihre Klasse in einem namespace.
  • Es ist auch möglich, einen breakpoint zu setzen in gdb über filename:linenumber. Wenn Ihre Funktion in bst.c, auf Linie 25, wäre der Befehl: (gdb) b bst.c:25
InformationsquelleAutor user3543461 | 2016-03-04
Schreibe einen Kommentar