![]() |
1
4
我算了一半。你需要打电话
但由于某些原因,它的头文件不包括在Windows CE SDKs中。因此,您需要手动声明它:
我问过 another question about getting the module from a code address ;理论上,可以将映射文件解析为 figure out which function (in that module) the address belongs to (谢谢ctacke的链接)。 |
![]() |
2
3
我也使用GetThreadCallStack,它工作得很好。一般来说,在调试方面,wince是最差的平台,工具也最差。msdn上所有关于doctorwatson的BS都需要成为合作伙伴或使用platform builder。那些需要在发布应用程序运行时解决崩溃源的普通开发人员呢?!在数字时代和计算机时代,这些地图文件的“酷”技巧听起来相当迟钝;这种任务完全适合计算机。 对于那些拒绝使用那些混乱的地图文件的人,我可以推荐一个可以帮助你避免这一步的工具。约翰·罗宾斯的 CrashFinder.exe 能为你做那部分。
然后,在crash finder中,你需要打开wince应用程序的exe文件,你可以查询地址,如果地址在你的应用程序中,它会显示你的函数名。通常,如果崩溃发生在winapi中的某个地方,我需要从callstack手动输入每个地址,直到找到我的应用程序中的最后一个地址。 |
![]() |
3
2
这些文章都讨论了如何在源代码中将地址转换为一行代码,可能会有帮助: |
![]() |
Daniel · 仅在-O3中进行未对齐的内存访问 1 年前 |
![]() |
TRElec · STM32:代码的执行似乎取决于它在闪存中的位置 2 年前 |
![]() |
Marietto · FATAL:ThreadManitizer:不支持的VMA范围FATAL:找到39-支持的48/go:添加了github.com/docker/docker v23.0.4+不兼容 2 年前 |
![]() |
Ilya Loskutov · 无法将单词加载到寄存器中 3 年前 |