Wie kann ich gestutzt die entstellten C ++ Bezeichner von GDB disassemble Befehl gezeigt?

StackOverflow https://stackoverflow.com/questions/1638967

  •  08-07-2019
  •  | 
  •  

Frage

GDB disassemble Befehl ist schön für kurze C-Kennungen, z.B. Haupt . Für lange, verstümmelten C ++ Identifikatoren der Ausführlichkeit Overkill ist. Zum Beispiel mit icpc sehe ich Ergebnisse wie

(gdb) disassemble 0x49de2f 0x49de5b
Dump of assembler code from 0x49de2f to 0x49de5b:
0x000000000049de2f <_ZN5pecos8suzerain16fftw_multi_array6detail18c2c_buffer_processIPA2_dPKSt7complexIdEilNS2_26complex_copy_differentiateIS4_EEEEvT_T1_T2_T0_SD_SE_RKT3_+167>: mov    0x18(%rsp),%rsi

Displays, die lange ärgerlich in der CLI sind. Sie machen GDB TUI Montage Anzeige alle, aber nutzlos.

Gibt es eine Möglichkeit GDB zu sagen, ein verkürztes Kennung zu zeigen? Sagen Clip alle aber 50 Zeichen?

War es hilfreich?

Lösung

Aktuelle GDB von CVS verhält sich so, wie Sie wollen, wenn es weiß, dass es nur eine Funktion bei der Demontage ist:

(gdb) disas 0x000000000040071c
Dump of assembler code for function _ZNKSt8_Rb_treeIPiSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE21_M_get_Node_allocatorEv:
   0x000000000040071c <+0>: push   %rbp
   0x000000000040071d <+1>: mov    %rsp,%rbp
   0x0000000000400720 <+4>: mov    %rdi,-0x8(%rbp)
   0x0000000000400724 <+8>: mov    -0x8(%rbp),%rax
   0x0000000000400728 <+12>:    leaveq 
   0x0000000000400729 <+13>:    retq   
End of assembler dump.

Wenn GDB kann nicht wissen, ob oder ob nicht die Demontage Funktion Grenze überschreiten wird, druckt er immer noch die „lange“ Form:

(gdb) disas 0x000000000040071c 0x000000000040071c+1
Dump of assembler code from 0x40071c to 0x40071d:
   0x000000000040071c <_ZNKSt8_Rb_treeIPiSt4pairIKS0_S0_ESt10_Select1stIS3_ESt4lessIS0_ESaIS3_EE21_M_get_Node_allocatorEv+0>:   push   %rbp
End of assembler dump.

Hier ist der Patch, der die „kurz vorgestellt Form“.

Andere Tipps

Dies ist nicht wirklich Ihre Frage beantworten, aber Sie könnten zumindest demangle Dinge Lage sein, sie etwas weniger hässlich zu machen:

set print asm-demangle on

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top