Как установить текущий каталог отлаженного процесса? - PullRequest
6 голосов
/ 20 ноября 2008

У меня есть приложение, чувствительное к каталогу, из которого оно вызывается - оно загружает некоторые файлы, используя относительные пути.

Когда я запускаю программу через отладчик, как я могу контролировать, какой будет начальный текущий каталог?

Я бы предпочел не добавлять специальный код в отлаживаемую программу, чтобы она вызывала chdir; Мой инстинкт заключается в том, что отладчик должен предоставить какой-то способ указать это извне, так как он в любом случае является внешним параметром.

Я использую отладчик TotalView, но я открыт для ответов на другие отладчики Linux, поскольку он может помочь мне найти сопоставимый параметр в телевизоре. Я могу указать переменные окружения, когда я вызываю программу, поэтому я попытался установить PWD, но безуспешно.

1 Ответ

6 голосов
/ 20 ноября 2008

В GDB начальный рабочий каталог - это каталог, из которого вы создаете экземпляр GDB. Итак, просто запустите GDB из того, что вы хотите, чтобы рабочий каталог был. Кроме того, во время работы программы вы можете изменить текущий рабочий каталог, выполнив:

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

В GDB также была встроенная команда для изменения рабочего каталога процесса из приглашения GDB:

(gdb) cd new/working/directory

Я никогда не использовал TotalView, но он должен иметь аналогичные функциональные возможности для выполнения кода (с побочными эффектами) из отладчика.

...