1

直接关系到这个问题

给定 Windows Phone 的托管程序集,如何为 ARM CPU 生成本机代码?我没有 Windows/ARM 设备(平板电脑和手机都没有)。那里有ngen实用程序,但 AFAIK 它只能为主机(即英特尔)生成代码。

我问的原因是,Windows Phone 开发中心提供的崩溃堆栈中的偏移量不是 MSIL 偏移量(我已经检查过 - 它们超出了 MSIL 函数大小)。这些看起来像本机代码偏移量。现在,不能保证离线生成的 ARM 代码与手机上执行的代码完全匹配,但至少会有一些相似之处。

编辑:这个crossgen工具听起来很像。但我无法让它工作;说file "..." or one of its dependencies was not found- 文件就在那里,我正在指定 /MissingDependenciesOK 标志。

4

1 回答 1

1

无论您在本地生成什么,您都不会获得与您在商店中看到的设备输出匹配的确切偏移量,因为有一个额外的最终编译步骤仅在设备上安装时完成,可以进一步更改您在本地生成的任何偏移量。

人们通常不会跟踪那些原始堆栈,而是设置Application.UnhandledException事件,以便您使用额外的调试信息捕获真正的托管堆栈,然后将其发送给他们自己,或者通过让用户邮寄崩溃,或者通过设置 Web 服务来收集他们。

于 2013-06-28T16:43:18.360 回答