【问题标题】:Easiest way to locate a static variable in code?在代码中找到静态变量的最简单方法?
【发布时间】:2009-09-18 16:45:24
【问题描述】:

我有一个错误,用于在我们的一个库中定位和重写一个静态变量,这占用了我们应用程序的启动时间。我不熟悉库代码库,并要求提供良好的启发式/技术/grep 命令/等。这会减轻我识别所述静态变量位置的任务吗?

(附注:我已经在代码库中搜索static;不用说这是一个冗长的结果。)

更新:错误报告仅说明“库 XYZ 在静态初始化时需要 N ms”;我没有更多关于静态变量的信息。我没有分析日志,但我会看看是否可以从错误报告者那里得到它们。

【问题讨论】:

  • 也许这是一个愚蠢的问题,但我也假设您不知道静态变量的名称——只是“一个”存在?
  • 你怎么知道时间是因为这个静态变量 - 大概你有一些日志或配置文件运行 - 如果是这样,这些日志等会提供更多的东西来寻找
  • grep "static <type_of_variable_here>" 可能会缩小您的结果范围,如果您还没有这样做的话。
  • 问题已更新;感谢 cmets
  • 全局变量不必是静态的。我会说您需要将搜索范围扩大到外部变量。

标签: c++ variables search static-initialization launch-time


【解决方案1】:

您可以尝试先执行nm -aC <libname> 并通过静态和全局变量 grep(IIRC 它们应该以 B/b 或 T/t 为前缀),然后在源代码中查找这些变量。它可能会缩小干草堆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-10-08
    • 2018-08-12
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多