void outputString(const char *str) {
cout << "outputString(const char *str) : " << str << endl;
}
risulta essereCome fare gdb mostra il nome della funzione non muting originale sul modello di disassemblaggio?
Dump of assembler code for function _Z12outputStringPKc:
0x004013ee <_Z12outputStringPKc+0>: push ebp
0x004013ef <_Z12outputStringPKc+1>: mov ebp,esp
0x004013f1 <_Z12outputStringPKc+3>: sub esp,0x8
0x004013f4 <_Z12outputStringPKc+6>: mov DWORD PTR [esp+4],0x443000
0x004013fc <_Z12outputStringPKc+14>: mov DWORD PTR [esp],0x4463c0
0x00401403 <_Z12outputStringPKc+21>: call 0x43f6e8 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc>
0x00401408 <_Z12outputStringPKc+26>: mov edx,DWORD PTR [ebp+8]
0x0040140b <_Z12outputStringPKc+29>: mov DWORD PTR [esp+4],edx
0x0040140f <_Z12outputStringPKc+33>: mov DWORD PTR [esp],eax
0x00401412 <_Z12outputStringPKc+36>: call 0x43f6e8 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc>
0x00401417 <_Z12outputStringPKc+41>: mov DWORD PTR [esp+4],0x43e4c8
0x0040141f <_Z12outputStringPKc+49>: mov DWORD PTR [esp],eax
0x00401422 <_Z12outputStringPKc+52>: call 0x42e170 <_ZNSolsEPFRSoS_E>
0x00401427 <_Z12outputStringPKc+57>: leave
0x00401428 <_Z12outputStringPKc+58>: ret
End of assembler dump.
Tutti gli smontaggi visualizzare solo i nomi delle funzioni manglinged, ma la sua non eaiser per programmatore di de-mutilazione e ottenere i nomi delle funzioni originali con la briga di digitare info symbol address
per ogni il nome di mangling incontrato, quindi ci sono dei metodi che potrebbero far sì che gdb mostri nomi di funzioni non mutevoli sul modello di assembly?
ma funziona bene nella mia porta MinGW. – Jichao
C'è una segnalazione di bug, https://sourceware.org/bugzilla/show_bug.cgi?id=12021. Questo non funziona solo per i simboli con suffisso @plt. – Ruslan
Funziona alla grande nel 2015. –