Как установить текущий каталог отлаженного процесса?

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

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

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

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

1 ответ

Решение

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

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

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

(gdb) cd new/working/directory

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

Другие вопросы по тегам