使用Lauterbach进行调试(Trace32)

pds*_*ssn 3 embedded debugging assembly arm inlining

在使用跟踪时,我发现在尝试查找它们以便放置断点时,源中未列出一些函数.这些函数似乎只有在我以汇编格式查看源时才会出现.

我和我的前辈交谈过,他们告诉我,如果任何一个函数只被调用一次,它将被Trace优化并显示为内联,因此可以在程序集中看到.

我的问题是:

  1. 这种优化如何通过劳特巴赫实现?
  2. 这有利吗?

hjs*_*ger 5

有几件事:

  1. 关于语句我发现在尝试查找它们以便放置断点时,源中没有列出很少的函数 ",只需检查映射文件/映射文件,其中包含构建中使用的不同函数,它们的位置在内存等,如果你没有在那里找到你的功能,而不只是查看优化[只有这可能是问题].

  2. 正如所指出的那样,优化不是由劳特巴赫完成的,而是由编译器完成的.通常,有不同的优化级别[在ARM中我们有O0-O2],其中O0是可能的最高优化,但这只应在客户发布时使用其他优化级别O2应该用于调试.

  3. 如果您认为编译器可能会优化该功能,请尝试使其易变.

  4. 其他可能与[直接]相关但可能有帮助的点是知道"你的文件位于内存的哪个区域",因为很多时候,当你想要调试某些东西并且该页面仍然不在RAM中时,您将无法将断点放到RAM中的页面之前[基本上,如果您的系统中存在按需分页的话]

希望这可以帮助.

-hjsblogger