生成ARM $ C $下一个英特尔机器上托管程序集 [英] Generating ARM code for a managed assembly on an Intel machine

查看:260
本文介绍了生成ARM $ C $下一个英特尔机器上托管程序集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

直接关系到<一个href="http://stackoverflow.com/questions/10547200/need-help-to-find-source-$c$c-line-from-stack-trace-byte-offset">this问题。

由于托管程序为Windows Phone,我怎么能生成原生$ C $下它的ARM CPU?我没有在Windows / ARM设备(平板电脑既没有,也没有电话)。还有的 NGEN 工具在那里,但AFAIK它只能产生code的主机(如英特尔)。

Given a managed assembly for Windows Phone, how can I generate native code for it for an ARM CPU? I don't have a Windows/ARM device (neither tablet nor a phone). There's the ngen utility out there, but AFAIK it can only generate code for the host machine (i. e. Intel).

为什么我问其原因,在事故中堆栈的Windows Phone开发中心提供的补偿都没有MSIL偏移量(我已经检查 - 他们超越MSIL功能大小的方式)。那些看起来像本地人code偏移。现在,有没有保证,这不在线生成的ARM code将完全符合什么是执行在手机上,但至少会是一些外表。

The reason why I'm asking, the offsets in the crash stack that Windows Phone Dev Center provides are not MSIL offsets (I've checked - they go way beyond MSIL function size). Those look like native code offsets. Now, there's no guarantee that the ARM code that's generated offline will exactly match what's executing on the phone, but at least there'd be some semblance.

编辑: crossgen 工具听起来像的东西。但我无法得到它的工作;说文件...或它的一个依赖未找到 - 该文件是在那里,我指定/ MissingDependenciesOK标志

the crossgen tool sounds like the thing. But I can't get it to work; says file "..." or one of its dependencies was not found - the file is right there and I'm specifying the /MissingDependenciesOK flag.

推荐答案

不管你怎么生成本地你不会得到满足,你看到在商店的设备的输出的确切偏移量,因为有一个的额外的,最后编译步骤即只完成在设备可以进一步改变你在本地生成的任何偏移量上安装的时间。

Regardless of what you generate locally you aren't going to get the exact offsets that match the device's output that you are seeing on the store, since there is an extra, final compilation step that is only done at install time on the device which can further change any offsets that you generate locally.

而不是通过那些原始筹码的人通常安装在<一个跟踪href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.application.unhandledexception.aspx"相对=nofollow> Application.UnhandledException 事件,使你捕捉到真正的管理堆栈额外调试信息,然后发送给自己,无论是由具有用户邮件的崩溃,或者建立一个Web服务来收集这些信息。

Instead of tracking through those raw stacks people often setup the Application.UnhandledException event so that you capture the real managed stack with extra debugging information and then send that to themselves, either by having the users mail the crash in, or by setting up a web service to collect them.

这篇关于生成ARM $ C $下一个英特尔机器上托管程序集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆