Diciamo che ho un programma come questoCome convertire un indirizzo di funzione per un simbolo
// print-addresses.cpp
#include <stdio.h>
void foo() { }
void bar() { }
void moo() { }
int main(int argc, const char** argv) {
printf("%p\n", foo);
printf("%p\n", bar);
printf("%p\n", moo);
return 0;
}
esso stampa alcuni numeri come
013510F0
013510A0
01351109
Come faccio a convertire quei numeri nuovamente dentro i simboli corretti ? Effettivamente mi piacerebbe essere in grado di fare questo
print-addresses > address.txt
addresses-to-symbols < address.txt
E averlo stampare
foo
bar
moo
So che questo ha qualcosa a che fare con la Debug Interface Access SDK ma non è del tutto chiaro per me come vado da un indirizzo per un simbolo.
per quanto posso dire nessuna di queste soluzioni realmente rispondere alla domanda. Capita di sapere che i dati nel dumpbin non sono sufficienti. La tua prima risposta richiede di essere eseguita nel programma originale. La risposta centrale potrebbe funzionare ma non è chiaro. – gman
@gman: Mi dispiace, potresti farmi sapere cosa non è chiaro sulla risposta centrale? La prima risposta * funziona * al di fuori del programma, è sufficiente generare un file minidump e caricarlo. –