Как получить имена функций ржавчины в результатах выхода Linux Backtrace (3)?Linux

Ответить
Anonymous
 Как получить имена функций ржавчины в результатах выхода Linux Backtrace (3)?

Сообщение Anonymous »

Я пытаюсь получить имена функций ржавчины для моего ржавного Cdylib ящика, чтобы появиться на выходе на выходе Linux Backtrace (3).

Код: Выделить всё

[profile.release]
lto = true
panic = "unwind"
debug = true
strip = false
split-debuginfo = "packed"
Я строите с Rustflags = '-c link-arg = -rdynamic' Cargo Build-release .
Несмотря на это, я получаю 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
}
All other functions are "pure" Rust functions, i.e., not declared with #[unsafe(no_mangle)] or extern "C".
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»