Как установить текущий каталог отлаженного процесса?
У меня есть приложение, чувствительное к каталогу, из которого оно вызывается - оно загружает некоторые файлы, используя относительные пути.
Когда я запускаю программу через отладчик, как я могу контролировать, какой будет начальный текущий каталог?
Я бы предпочел не добавлять специальный код в отлаженную программу, чтобы она вызывала chdir
; Мой инстинкт заключается в том, что отладчик должен предоставить какой-то способ указать это извне, так как он в любом случае является внешним параметром.
Я использую отладчик TotalView, но я открыт для ответов на другие отладчики Linux, поскольку он может помочь мне найти сопоставимый параметр в телевизоре. Я могу указать переменные окружения, когда я вызываю программу, поэтому я попытался установить PWD
, но не повезло.
1 ответ
В GDB начальный рабочий каталог - это каталог, из которого вы создаете экземпляр GDB. Итак, просто запустите GDB из любого рабочего каталога. Кроме того, во время работы программы вы можете изменить текущий рабочий каталог, выполнив:
(gdb) print chdir("new/working/directory")
В GDB также была встроенная команда для изменения рабочего каталога процесса из приглашения GDB:
(gdb) cd new/working/directory
Я никогда не использовал TotalView, но он должен иметь аналогичную функциональность для выполнения кода (с побочными эффектами) из отладчика.