Domanda

Mi piacerebbe cambiare il modo in cui alcuni tipi vengono visualizzati utilizzando 'dt' o '??' in modo simile a come si può fare con autoexp.dat. C'è un modo per fare questo?

Per esempio, ho una struttura simile a questa:


struct Foo
{
    union Bar
    {
       int a;
       void *p;
    } b;
};

E io ho un array di qualche centinaio di questi, ognuno dei quali so che il punto a una struttura Bar. C'è un modo per dire che CDB, in questa espressione in ogni caso, che la 'p' è un puntatore a Bar? Questo è il genere di cosa che si potrebbe fare con AutoExp. (L'esempio concreto è che ho uno stashtable che può avere le chiavi di qualsiasi tipo, ma so che le chiavi sono stringhe. L'attuazione loro come puntatori void memorizza).

Grazie in anticipo!

È stato utile?

Soluzione

Non credo che ci sia qualcosa di semplice come autoexp.dat.

Hai un paio di opzioni possibili - è possibile scrivere un file di script semplice con i comandi di debugger per scaricare la struttura di dati nel modo desiderato e utilizzare il comando "$<filename" (o una delle sue varianti). In combinazione con gli alias utente è possibile ottenere questo per essere piuttosto facile e naturale da usare.

La seconda opzione è un po 'più complesso, ma con esso viene molto più potere - scrivere una DLL di estensione che scarica la struttura dei dati. Per qualcosa di simile a ciò che si sta parlando questo è probabilmente eccessivo. Ma avete un potere immenso con le estensioni del debugger (in realtà, gran parte del potere che viene nel pacchetto di strumenti di debug è implementato in questo modo). L'SDK è confezionato con il debugger, quindi è facile per determinare se questo è ciò che si potrebbe aver bisogno.

Altri suggerimenti

Si può dire du o da di averlo dump della memoria come unicode o ascii stringhe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top