В настоящее время я работаю над инструментом, который позволяет мне изменять C ++ — код на лету. Измененные файлы компилируются в фоновом режиме, загружаются из .obj, перемещаются & связаны и исправлены в запущенном процессе.
Это работает отлично до сих пор.
Однако я не смог загрузить символы для новых функций, чтобы они были видны отладчику. Я попытался создать виртуальный модуль с помощью SymLoadModuleEx и добавить символы с помощью SymAddSymbol, но это не сработало.
В конечном счете, я хотел бы иметь возможность добавлять символы и информацию о строках для новых функций. Я мог бы сделать это либо из файла .pdb, либо из информации COFF, хранящейся в .obj (у меня есть оба), но мне кажется, что мне не хватает важной части, которая сообщает отладчику.
Есть ли функция для этого, которую я просто пропустил? Или недокументированный код для RaiseException, который понимается отладчиком (аналогично именованию потока)?
Я использую Visual Studio, но любая помощь в том, чтобы заставить это работать или в отладчике VS или в WinDBG, очень ценится.
Задача ещё не решена.
Других решений пока нет …