跟踪符号的发射

发布于 2025-01-15 09:31:39 字数 134 浏览 1 评论 0原文

我正在调试一些嵌入的代码,这些代码不能通过“panic_never”板条箱出现恐慌。尽管如此,rust_begin_unwind 符号还是在某处发出,并且无法找到其来源。是否有任何工具或方法可以理解是什么触发了目标文件中给定符号的发射(在链接之前)?谢谢

I’m debugging some embedded code that must not panic through the "panic_never" crate. Still, the rust_begin_unwind symbol is emitted somewhere and can’t find its origin. Is there any tool or method to understand what triggers the emission of a given symbol in object files (before linking) ? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

青朷 2025-01-22 09:31:39

是否有任何工具或方法可以理解是什么触发了目标文件中给定符号的发射

步骤1:找到引用该符号的对象。您可以添加链接器 rustc -C link-args=-Wl,-y,rust_begin_unwind ,它应该打印引用该符号的所有对象,或者通过运行 nm -A *.o | grep rust_begin_unwind。

第 2 步:找出给定对象具有引用的原因:将产生此问题 .o 的源代码编译为程序集(说明)。 Assembly 应该让您了解为什么rust_begin_unwind被调用。

Is there any tool or method to understand what triggers the emission of a given symbol in object files

Step 1: find the object which references the symbol. You could add the linker rustc -C link-args=-Wl,-y,rust_begin_unwind, which should print all objects which reference the symbol, or by running nm -A *.o | grep rust_begin_unwind.

Step 2: find out why a given object has the reference: compile the source which produced this problematic .o to assembly (instructions). Assembly should give you an idea of why rust_begin_unwind is being called.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文