Come faccio a parlare di gdb in unix per cercare i file di origine all'interno di una singola directory in modo ricorsivo per esempio se ci sono alcuni blocchi buiding in un modulo. a è la directory padre per b, c, d dove b, c, d sono directory secondarie. e i file sorgente sono distribuiti in b, c, b. devo solo menzionare a gdb che tutti i file sorgente si trovano in una (directory madre). quale gdb userà come riferimento e cercherà i file sorgente in modo ricorsivo durante il debug di un programma.gdb alla ricerca di directory di origine
17
A
risposta
16
Oppure si può fare qualcosa di simile, per il debug di programmi prog
con la fonte nella directory srcdir
:
gdb `find srcdir -type d -printf '-d %p '` prog
penso che sia una risposta più diretta alla sua domanda. Utile anche se il tuo eseguibile non contiene le directory di compilazione e/o non hai la versione 6.6+ di gdb.
5
(gdb) help files
Specifying and examining files.
List of commands:
add-shared-symbol-files -- Load the symbols from shared objects in the dynamic linkers link map
add-symbol-file -- Load symbols from FILE
add-symbol-file-from-memory -- Load the symbols out of memory from a dynamically loaded object file
cd -- Set working directory to DIR for debugger and program being debugged
core-file -- Use FILE as core dump for examining memory and registers
directory -- Add directory DIR to beginning of search path for source files
edit -- Edit specified file or function
exec-file -- Use FILE as program for getting contents of pure memory
file -- Use FILE as program to be debugged
forward-search -- Search for regular expression (see regex(3)) from last line listed
generate-core-file -- Save a core file with the current state of the debugged process
(gdb) help directory
Add directory DIR to beginning of search path for source files.
Forget cached info on source file locations and line positions.
DIR can also be $cwd for the current working directory, or $cdir for the
directory in which the source file was compiled into object code.
With no argument, reset the search path to $cdir:$cwd, the default.
21
Quello che ti serve è il comando set substitute-path.
(gdb) set substitute-path /usr/src/include /mnt/include
Disponibile solo nelle versioni recenti (6,6+) di gdb.
Problemi correlati
- 1. Variazione directory di origine nel profilo Maven
- 2. Directory di origine in Visual Studio 2010
- 3. Chrome aggiungendo intestazione di origine alla richiesta stessa origine
- 4. Impossibile accedere alla funzione string.h con GDB
- 5. php scandir -> ricerca di file/directory
- 6. Ricerca CMake ricorsiva per i file di intestazione e origine
- 7. Alla ricerca di parole simili
- 8. Ricerca di più indici dalla stringa di origine
- 9. Layout di directory di origine per lingua mista
- 10. Nessun file di origine denominato main.c. Impostazione del punto di interruzione gdb
- 11. Alla ricerca di un analizzatore di espressioni
- 12. Compilatore Maven2 directory di origine di esecuzione personalizzata e directory di destinazione
- 13. Ricerca di file fuzzy per directory?
- 14. Origine di about: blank in relazione alla stessa politica di origine
- 15. Espandi percorso di ricerca Python ad altra origine
- 16. Ricerca origine creazione di thread in un'applicazione Java
- 17. JavaFx Ricerca del nodo genitore di origine con ID specifico?
- 18. Qmake non supporta le directory di compilazione sotto la directory di origine
- 19. Catch python 'ImportError' se importato dalla directory di origine
- 20. definire la directory di origine aggiuntiva in Maven
- 21. formica più directory di origine con risorse copiati
- 22. Alla ricerca di un modo sicuro per distribuire codice PHP
- 23. Saltare alla successiva "istruzione" utilizzando gdb
- 24. Alla ricerca di una funzione hash veloce
- 25. alla ricerca di un editor wysiwyg leggero
- 26. Alla ricerca di documenti/studi sull'effettività TDD
- 27. Alla ricerca di un Net ORM
- 28. alla ricerca di un imagemagick nodejs npm?
- 29. Alla ricerca di una formula interessante
- 30. Alla ricerca di un albero genealogico
"set directory" può essere utilizzato anche nelle ultime versioni. – ernesto
Funziona anche su Windows come 'set sostituto-percorso/home/me/progetto c: \\ Utenti \\ me \\ progetto'. –
Se si carica il file principale su un'altra macchina, il percorso di origine potrebbe essere diverso. Non puoi sostituire nel caso in cui '$ gdb program corefile' o' $ gdb -c corefile program'. In questo caso dovresti eseguire '$ gdb program' e quindi effettuare la sostituzione' (gdb) set substitute-path/home/me/project/my/new/path' e caricare un corefile '(gdb) core-file corefile'. –