如何知道哪个函数使用trace32调用了特定的指令?基于ARM的。
就像我知道这条指令X有一些错误。我怎样才能追溯到代码中的哪个函数执行了这个指令X。
此外,如何了解更多关于使用trace32的帮助将不胜感激。
发布于 2018-10-30 03:05:36
如果您知道指令的编码,则可以使用Data.Find命令在内存中搜索指令。
例如:要在地址范围0x10000--0x1FFFF内查找指令"asreq r0,r12,#0x1F“编码的Thumb2,您可以使用:
Data.find P:0x10000--0x1FFFF %Long 0x01A00FCC其他选项:使用ETM trace记录您的应用程序(如果芯片和Lauterbach工具提供此功能),并通过记录进行文本搜索。例如:
WinPOS ,,,,,,TraceList
Trace.List List.CODE List.ADDRESS List.ASM
WinFIND "asreq r0,r12,#0x1F" TraceList发布于 2018-10-26 23:16:24
我不认为你的案子需要追踪。只需设置一个断点,然后查看调用堆栈:
# set breakpoint
Break.Set P:<address>
# go until breakpoint is hit
Go
WAIT !STATE.RUN()
# display call stack
Frame要了解如何使用TRACE32,请检查您的TRACE32安装,例如"training_debugger.pdf“。
https://stackoverflow.com/questions/53011107
复制相似问题