【问题标题】:Adding printf to the starting of all functions in a file将 printf 添加到文件中所有函数的开头
【发布时间】:2011-03-05 22:54:36
【问题描述】:

我有一些非常大的 C 文件,有很多功能。我需要在运行时跟踪执行路径。我无法通过调试对其进行跟踪,因为它是当前在 qemu 上运行并进行大量二进制转换的管理程序代码。

谁能给我指点 Perl 或 Python 中的一些脚本,它可以在所有函数的开头添加 printf,文本可能类似于“我在 ”?

【问题讨论】:

    标签: python c perl


    【解决方案1】:

    编译时只需将-finstrument-functions 传递给gcc。有关详细信息,请参阅 gcc(1) 手册页。

    【讨论】:

    • 完美回答问题的精神。
    • +1。补充一下,入口代码可能如下所示: printf("Function details: %s\n", ____PRETTY_FUNCTION____); ____PRETTY_FUNCTION____ 是预定义的宏,它提供了一个包含函数名+签名的字符串。
    • 注意:您需要手动实现每个跟踪功能,或者使用像 etrace 这样的工具来解析 ELF 并为您生成这些调用:stackoverflow.com/questions/6176284/…
    【解决方案2】:

    这是您想要的nice example

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 2015-02-04
      • 2011-03-20
      • 2019-10-06
      • 2012-01-02
      • 1970-01-01
      相关资源
      最近更新 更多