Код: Выделить всё
[profile.release]
lto = true
panic = "unwind"
debug = true
strip = false
split-debuginfo = "packed"
Несмотря на это, я получаю Backtraces, как это:
/redacted/redacted.so(+0x256d0a)[0x7f1447585d0a]
/redacted/redacted.so(+0x2553a3)[0x7f14475843a3]
/redacted/redacted.so(+0x255096)[0x7f1447584096]
/redacted/redacted.so(+0x2542c9)[0x7f14475832c9]
/redacted/redacted.so(+0x254d5d)[0x7f1447583d5d]
/redacted/redacted.so(+0x27415d)[0x7f14475a315d]
/redacted/redacted.so(+0x2741f2)[0x7f14475a31f2]
/redacted/redacted.so(+0x2742b5)[0x7f14475a32b5]
/redacted/redacted.so(redacted_fn_name+0x17d)[0x7f14473ceb2d]
< /code>
Как видите, все записи в задней части не хватают имени функции, за исключением нижнего. Я подозреваю, что причина, по которой нижний присутствует в задней дороге, может быть связана с тем, как он функционирует. Его код такой: < /p>
Код: Выделить всё
#[unsafe(no_mangle)]
pub unsafe extern "C" fn redacted_fn_name(/* args */) -> u32 {
// Function body
}
I know the backtrace(3) man page lists the following caveats:
Omission of the frame pointers (as implied by any из ненулевых оптимизационных уровней GCC (1) может быть нарушено, что эти предположения не имеют кадров. Опция. Тем не менее, я не уверен, есть ли что -то в ржавчине, что может помешать функциям быть «статичными», чтобы они могли появиться в обратном направлениях.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... cktrace3-o
Мобильная версия