clang: как fdebug-prefix-map может использовать новый путь относительно домашнего пути пользователя `~`? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь переписать исходный путь к файлу ~/src/lib, используя fdebug-prefix-map.

Я могу подтвердить, что DW_AT_decl_file переписано в нечто вроде ~/src/lib/path.

Но в результате lldb не может найти исходный файл. Если я перехожу на абсолютный путь, он работает нормально.

Как я могу решить это?

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете использовать настройку target.source-map для переназначения местоположения исходных файлов. От (lldb) apropos source-map:

Переназначения пути к исходному тексту используются для отслеживания изменения местоположения между исходным файлом при его создании и местом его существования в текущей системе. Он состоит из массива дубликатов, первый элемент каждого дубликата представляет собой некоторую часть (начиная с корня) пути к файлу, когда он был собран, а второй - это место, где остаток исходной иерархии сборки коренится на локальная система. Каждый элемент массива проверяется по порядку, и выигрывает первый, который приводит к совпадению.

Использование выглядит примерно так:

(lldb) settings append target.source-map /foo /bar

Обратите внимание, что вы используете append здесь вместо set, потому что в противном случае вы перезаписываете отображение каждый раз, когда добавляете запись. Вы можете проверить отображение с помощью:

(lldb) settings show target.source-map
...