Как я могу назвать регулярную функцию (а не блок) в LLDB?
Я пробовал использовать:
expr int $addr = 0x51bb45
expr (void (^)(void))$addr
expr $0()
но я получаю сообщение об ошибке "Не получилось запустить событие после intiial резюме, вместо этого остановился. Не удалось выполнить функцию; результатом был eExecutionSetupError '
вот как объявлена функция, но у меня нет символов... extern "C" void do_something (void)
редактировать:
решение должно использовать:
(void (*)(void))$addr
Если это то, как объявлена функция, то это указатель блока, а не регулярная функция. Как сказал nos, в декларации было бы *, если бы это был указатель на функцию. lldb в настоящее время не знает, как вызвать указатели на блок: например, методы C++ и ObjC им нужен правильно сконструированный искусственный первый аргумент, а lldb не знает, как это сделать для блоков.
(void (*)(void))$addr
?