Почему я не могу найти реализацию _Unwind_Backtrace в Android-проекте с открытым исходным кодом Kitkat? - PullRequest
0 голосов
/ 27 февраля 2019

Я читаю код о реализации трассировки стека печати в нативном коде Android, я нашел следующий код:

ssize_t unwind_backtrace(backtrace_frame_t* backtrace, size_t ignore_depth, size_t max_depth) {
    ALOGV("Unwinding current thread %d.", gettid());

    map_info_t* milist = acquire_my_map_info_list();

    backtrace_state_t state;
    state.backtrace = backtrace;
    state.ignore_depth = ignore_depth;
    state.max_depth = max_depth;
    state.ignored_frames = 0;
    state.returned_frames = 0;
    init_memory(&state.memory, milist);

    _Unwind_Reason_Code rc = _Unwind_Backtrace(unwind_backtrace_callback, &state);

    release_my_map_info_list(milist);

    if (state.returned_frames) {
        return state.returned_frames;
    }
    return rc == _URC_END_OF_STACK ? 0 : -1;
}

, но я не могу найти реализацию _Unwind_Backtrace в http://androidxref.com/4.4.2_r2/, есть ли какая-то причина у тела?Где реализация _Unwind_Backtrace?

1 Ответ

0 голосов
/ 05 марта 2019

Для Android 4.4 unwind_backtrace в /system/core/libcorkscrew/backtrace.c

...