2015-08-01 35 views
5

Durante il debug di un'applicazione Qt 5, a volte non mi interessa l'interno di Qt 5 ma nella struttura dell'applicazione stessa. Pertanto non ho bisogno di caricare tutti i simboli di debug delle librerie Qt 5 poiché questi richiedono alcuni secondi per essere caricati.Come impedire a GDB di caricare il simbolo di debug per una (grande) libreria?

È possibile impedire a GDB di caricare i simboli per queste librerie Qt 5 mantenendo i simboli di debug per la mia applicazione?

+3

Forse questa pagina: https://developer.mozilla.org/en-US/docs/Using_gdb_on_wimpy_computers potrebbe essere di qualche utilità. –

risposta

7

È possibile impedire a GDB di caricare i simboli per queste librerie Qt 5 mantenendo i simboli di debug per la mia applicazione?

Sì.

Come il commento di Richard Critten menziona, impostando auto-solib-add-0 impedirà il caricamento di simboli per tutti librerie condivise, e quindi è possibile aggiungere i file manualmente con il comando sharedlibrary (che accetta un'espressione regolare). Se questa regex viene omessa, vengono caricate tutte le librerie condivise.

Che però impedirebbe auto-caricamento di tutti i simboli (non solo simboli di debug), e sarebbe anche evitare che auto-caricamento di simboli per librerie di sistema, che sono spesso necessari per svolgere la pila.

Un approccio migliore potrebbe essere quello di salvare una copia delle librerie Qt5 con informazioni complete di debug da qualche parte, ad es. ~/Qt5-debug/, quindi eseguire strip -g sulle librerie originali. In questo modo, otterrai informazioni simboliche per tutte le librerie e, nel raro caso in cui hai effettivamente bisogno di informazioni di debug complete per Qt5, puoi comunque farlo utilizzando il GDB file ~/Qt5-debug/libQt5Core.so.5.2 o comandi simili.

Il capitolo GDB Files dal manuale GDB ha più documentazione sull'utilizzo di tali simboli di debug separati.

+0

Grazie anatra di gomma! Poco dopo aver postato questa domanda ho trovato le sezioni pertinenti nel manuale di GDB, spero che non ti dispiaccia aggiungerle :-) – Lekensteyn

+1

Grazie mille !!! Avviare il debug dell'applicazione Qt sul Raspberry richiede molto tempo. Con questa opzione si avvia immediatamente gdb. – kaegoorn48

+0

È inoltre possibile aggiungere questo comando esatto a ~/.gdbinit per renderlo permanente. – sdd