Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Определить функцию, если известен ее адрес


Автор: kurtis 8.12.2010, 17:45
Есть такой код
Код

int some_foo(void (*proc)(), ...) {
    /* 
        ...    
    */
    
    if (child_is_hang) {
        fprintf(stderr, "fork_wait(0x%x) hangs - shutting down\n", (int)proc);
        system_poweroff();
    }
}


Смысл этой функции в том, что она делает fork, и если child сильно задумался, то она перегружаем систему. В child запускаем функцию которую передали в качестве аргумента. 

Проблема:
В рантайме происходит перегрузка системы и пишет адрес функции, которая зависла. 

Вопрос:
Мне нужно узнать какая именно функция зависла, как мне это сделать зная ее адрес?

Автор: Albor 8.12.2010, 18:46
Цитата(kurtis @  8.12.2010,  17:45 Найти цитируемый пост)
Мне нужно узнать какая именно функция зависла, как мне это сделать зная ее адрес?

можно создать map, где ключ - адрес функции, значение - её имя. 

Автор: xvr 9.12.2010, 13:13
Цитата(kurtis @  8.12.2010,  17:45 Найти цитируемый пост)
Мне нужно узнать какая именно функция зависла, как мне это сделать зная ее адрес?
Вытащить из отладочной информации. Процесс вытаскивания сильно зависит от платформы.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)