如何编写我自己的打印回溯的函数

发布于 2024-11-29 17:14:24 字数 82 浏览 3 评论 0原文

如何编写一个 C 函数来打印回跟踪直到该函数被调用。 我不想使用任何库。我想编写自己的代码来完成这项工作。
任何人都可以输入来完成这项任务吗?

How to write a C function to print back trace till that function is called.
I don't want to use any library.I would like to write my own code to do that job.
Can anyone please inputs to achieve this task?

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

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

发布评论

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

评论(2

灵芸 2024-12-06 17:14:24

您无法在可移植 C 中编写这样的函数,并且在不了解编译器使用的特定平台和调用约定的情况下也无法编写它。因此,您的问题(目前)缺乏回答它所需的所有细节。

如果您想了解 backtrace() 一般如何工作,您可以研究任意数量的可用实现。

如果您想从头开始实现一个(作业?),请研究您平台的调用约定。

You can't write such a function in portable C, and you can't write it without knowing specific platform and calling conventions used by your compiler. Therefore your question (currently) lacks all the details one would need to answer it.

If you want to know how backtrace() works in general, you can study any number of implementations available.

If you want to implement one from scratch (homework?), study the calling convention for your platform.

等你爱我 2024-12-06 17:14:24

没有可移植的方法来做到这一点,但 gcc 提供了一种半干净的方法来使用 __builtin_return_address 和朋友来做到这一点。

There's no portable way to do this, but gcc provides a halfway-clean way to do it with __builtin_return_address and friends.

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