GNU/Linux >> Linux Esercitazione >  >> Linux

Come stampare i membri di un oggetto c++ usando GDB da un indirizzo se il tipo di classe dell'oggetto è come A::B

So che questo è etichettato come risposta, ma sono stato in grado di riprodurre questo problema utilizzando gdb su OS X (GNU gdb 6.3.50-20050815 (Apple version gdb-1820) (Sat Jun 16 02:40:11 UTC 2012)) e la soluzione che funziona per me non ha risposto per me.

Si è scoperto che c'era un'altra domanda su SO che aveva una risposta che funzionava, quindi penso che valga la pena entrare in questa domanda:

Perché il casting di gdb non funziona?

La risposta breve è che potresti dover virgolette singole per le variabili con spazio dei nomi:

(gdb) p ('MyScope::MyClass'*) ptr;


Funziona per me:

g++ -g test.cpp -o test
gdb test
(gdb) break main
(gdb) r


Breakpoint 1, main () at test.cpp:22
22      A::B *p = new A::B(100);
(gdb) n
24      p->print();
(gdb) n
m_a is 100
26      int *q = 0;
(gdb) p p
$1 = (A::B *) 0x602010
(gdb) p (A::B *) 0x602010
$2 = (A::B *) 0x602010
(gdb) p *((A::B *) 0x602010)
$3 = {m_a = 100}

Per me funziona. Cosa stai usando (versione gcc, sistema operativo, flag di compilazione?)


Linux
  1. Come aggiungere l'indirizzo IP su Ubuntu 18.04 usando netplan?

  2. Come consentire o bloccare la porta e l'indirizzo IP utilizzando Firewalld, tabelle IP e UFW in Linux?

  3. Come montare dalla riga di comando come fa il Nautilus?

  4. Utilizzo di awk per stampare tutte le colonne dall'ennesima all'ultima

  5. Come impostare l'indirizzo IP da C in Linux

Come elencare i membri di un gruppo in Linux

Come controllare la versione di Ubuntu dalla riga di comando

Come modificare l'indirizzo MAC su Ubuntu 20.04 utilizzando Macchanger

Come ottenere l'indirizzo IP di un contenitore Docker dall'host

Come acquisire il primo indirizzo IP da un comando ifconfig?

Come forzare Linux a riacquisire un nuovo indirizzo IP dal server DHCP?