Как я могу изменить путь отладки, включенный компилятором в информацию DWARF двоичного файла

GCC включает путь к исходному файлу, который использовался для создания объектного файла, в своей отладочной информации DWARF (при компиляции с параметром -g).

Однако правила поиска GDB означают, что я должен использовать менее известные set subsitute-path если я переместил исходный код в другой подкаталог. В качестве альтернативы, может быть, я хочу скрыть некоторую информацию о пути к моим исходным файлам, а может быть, просто сократить ее.

Предоставляет ли GCC возможность изменить исходный путь, который он включает в отладочную информацию двоичного файла?


person John de Largentaye    schedule 22.10.2015    source источник


Ответы (1)


Используйте опцию -fdebug-prefix-map=old_path=new_path для GCC.

Насколько мне известно, LLVM/Clang не предоставляет эквивалентной опции.

person John de Largentaye    schedule 22.10.2015
comment
Это заняло у меня несколько часов, и я не нашел ни одной комбинации поиска [гном, отладка, путь, шаблон, замена, подстановка], поэтому я размещаю его здесь в надежде улучшить его google-сок. - person John de Largentaye; 23.10.2015
comment
rpm включает команду debugedit, которая делает это. Я думаю, что это несколько взломано (IIRC). В любом случае Fedora использует это для перезаписи путей отладочной информации при сборке RPM. - person Tom Tromey; 24.10.2015