2008-11-19 8 views
6

J'ai une application qui est sensible au répertoire dont elle est appelée - elle charge certains fichiers en utilisant des chemins relatifs.Comment définissez-vous le répertoire actuel d'un processus débogué?

Lorsque je démarre le programme via un débogueur, comment puis-je contrôler le répertoire courant initial?

Je préférerais éviter d'ajouter du code spécial au programme débogué pour l'appeler chdir; mon instinct est que le débogueur devrait fournir un moyen de spécifier cela de l'extérieur, car c'est intrinsèquement un paramètre externe de toute façon. Le débogueur que j'utilise est TotalView, mais je suis ouvert aux réponses pour les autres débogueurs Linux, car cela pourrait m'aider à trouver un réglage comparable dans la TV. Je peux spécifier des variables d'environnement quand j'appelle le programme, donc sur une alouette, j'ai essayé de régler PWD, mais pas de chance.

Répondre

6

Avec GDB, le répertoire de travail initial est le répertoire à partir duquel vous instanciez GDB. Donc, lancez simplement GDB à partir de ce que vous voulez que le répertoire de travail soit. Sinon, alors que le programme est en cours d'exécution, vous pouvez modifier le répertoire de travail tout en faisant:

(gdb) print chdir("new/working/directory") 

GDB avait également une commande intégrée pour changer le processus répertoire de travail à partir de l'invite GDB:

(gdb) cd new/working/directory 

Je n'ai jamais utilisé TotalView, mais il devrait avoir une fonctionnalité similaire pour l'exécution de code (avec des effets secondaires) à partir du débogueur.

+0

Wow, c'était facile. Changer le répertoire Je démarre TotalView à partir de travaillé. Il a également une commande "Evaluer" dans le menu Outils pour exécuter des commandes immédiates comme chdir. Merci pour le coup de pouce dans la bonne direction! –

Questions connexes