gpt4 book ai didi

使用 Lauterbach (Trace32) 进行调试

转载 作者:行者123 更新时间:2023-12-02 23:14:06 29 4
gpt4 key购买 nike

在使用trace时,我发现一些函数没有在源代码中列出,同时试图找到它们以设置断点。这些函数似乎只有当我以汇编格式查看源代码时才会出现。

我和我的前辈交谈过,他们告诉我如果任何函数只调用一次,它会被Trace优化并且会显示为内联,因此可以在汇编中看到。

我的问题是:

  1. Lau​​terbach 是如何实现这种优化的?
  2. 这有好处吗?

最佳答案

有几件事:

  1. 关于语句我在尝试查找函数以便放置断点时发现源代码中未列出一些函数”,只需检查映射文件/映射文件,由构建中使用的不同函数、它们在内存中的位置等组成,如果您在那里找不到您的函数,那么只需查看优化[只有这可能是问题]。

  2. 正如正确指出的,优化不是由 Lauterbach 完成的,而是由编译器完成的。通常,有不同的优化级别[在 ARM 中我们有 O0-O2],其中 O0 是可能的最高优化,但这仅应在向客户发布版本时使用,否则应使用优化级别 O2 进行调试。

  3. 如果您觉得编译器可能会优化该函数,请尝试将其设为 volatile .

  4. 其他一点可能与此不[直接]相关,但可能会有所帮助,那就是知道“您的文件位于内存的哪个区域”,因为很多时候,当您想要调试某些内容并且该页面是仍然不在 RAM 中,您将无法在该页面被放入 RAM 之前放置断点 [基本上,类似于按需分页(如果您的系统中存在)]

希望这有帮助。

-hjsblogger

关于使用 Lauterbach (Trace32) 进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524210/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com