В приложении, построенном с отладочными символами, мне нужна функция, которая при наличии адреса возвращает имя символа (если существует) по этому адресу.
Мне известно о dladdr()
, но оно работает только для символы в общих библиотеках, а не символы в исполняемом файле или в библиотеках stati c.
В качестве примера того, как это должно работать, в gdb я могу сделать info symbol 0x...
, и это дает мне имя. Для того же адреса я должен быть в состоянии сделать symbolName(0x...)
и я должен получить то же имя.
Я предполагаю, что не существует легкодоступного решения для этого, поэтому я рад реализовать это сам, но я не уверен, с чего начать. Я могу проанализировать информацию DWARF об исполняемом файле, но тогда я не уверен, где искать в DWARF.
Спасибо