При удаленной отладке, как получить доступ к исходному файлу на цели

Я использую CDT для удаленной отладки приложения. Приложение создает исходный фрагмент и JIT-компилирует его в память. Для отладки он создает образ ELF/DWARF в памяти и регистрирует его в интерфейсе GDB JIT, а также записывает исходный файл, соответствующий DWARF, в локальную (целевую) файловую систему.

Проблема в том, что внешний интерфейс отладчика затем ожидает найти исходный файл в файловой системе хоста. Если я вручную копирую исходный файл с цели на хост после каждого JIT-события, отладчик может пройти через источник, но это нецелесообразно. Если JIT загрузит файл на хост, потребуется, чтобы JIT знал, что он отлаживается (и откуда). Есть ли способ заставить gdbserver или CDT извлекать исходный файл, когда это необходимо, из целевой файловой системы?

Я создаю образ ELF/DWARF, который передается интерфейсу JIT GDB, поэтому я мог бы описать местоположение исходного файла, используя альтернативный путь, если это поможет.


person Al Grant    schedule 21.06.2012    source источник


Ответы (1)


Протокол gdbserver уже поддерживает извлечение удаленных файлов.

Хитрость заключается в том, чтобы GDB автоматически выдавал команду fetch в ответ на события JIT. Это было бы довольно легко сделать с помощью сценариев Python. К сожалению, похоже, что события JIT не подвергаются Питон.

Я предлагаю подать запрос на функцию в GDB bugzilla.

person Employed Russian    schedule 06.07.2012