heep综合症是指:‖app,xauter,net

How to use Windbg to debug a dump of a 32bit .NET app running on a x64 machine - Microsoft SQL Server troubleshooting - Site Home - MSDN Blogs
Powered by
How to use Windbg to debug a dump of a 32bit .NET app running on a x64 machine
How to use Windbg to debug a dump of a 32bit .NET app running on a x64 machine
Imagine we are running a 32bit .NET app in a x64 machine. This app is failing so we have taken a memory dump of the app when a specific&CLR exception gets raised.
We open the dump with our 64bit version of Windbg (Windbg x64), and we verify that we actualy got the dump when the exception happened:This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(27e8.2904): CLR exception - code e0434f4d (first/second chance not available)
wow64!Wow64NotifyDebugger+0x9:
We check the unmanaged call stack and it looks like this:0:000& k
2e170 be64f2 wow64!Wow64NotifyDebugger+0x9
2e1a0 be6866 wow64!Wow64KiRaiseException+0x172
2e510 b83c7d wow64!Wow64SystemServiceEx+0xd6
2edd0 be6a5a wow64cpu!ServiceNoTurbo+0x28
2ee60 be5e0d wow64!RunCpuSimulation+0xa
2ee90 ed8501 wow64!Wow64LdrpInitialize+0x2ed
2f6c0 ed6416 ntdll!LdrpInitializeProcess+0x17d9
2f9d0 ef3925 ntdll!_LdrpInitialize+0x18f
2fab0 d59640 ntdll!KiUserApcDispatch+0x15
2ffa8 d59640
Well, all this wow64 stuff&doesn't tell us much...&This is the 64bit look of our 32bit app. Let's try to take a look to the managed call stack. We need to load SOS extension for that:0:000& .loadby sos mscorwks
The call to LoadLibrary(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Well, this error makes sense. We are trying to load 32bit version of SOS into 64bit version of Windbg. 64bit version of SOS should be here: C:\Windows\Microsoft.NET\Framework64\v2.0.50727.
Let's try our 32bit version of Windbg (Windbg x86) then. We can also&see the exception and the unmanaged call stack with&all that wow64 stuff. Same as before. Let's try to load SOS then:0:000& .loadby sos mscorwks
Ok, it seems to be loaded. Let's check it:0:000& .chain
Extension DLL search Path:
Extension DLL chain:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos: image 2.0., API 1.0.0, built Thu Dec 06 05:42:38 2007
[path: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll]
Great. We are doing business. I don't want to see all that wow64 stuff, I want to see the managed (.NET) call stack with SOS:0:000& !clrstack
Failed to load data access DLL, 0x
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of mscorwks.dll is
in the version directory
3) or, if you are debugging a dump file, verify that the file
mscordacwks___.dll is on your symbol path.
4) you are debugging on the same architecture as the dump file.
For example, an IA64 dump file must be debugged on an IA64
You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.
.cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.
If you are debugging a minidump, you need to make sure that your executable
path is pointing to mscorwks.dll as well.
Weird.&We got an unexpected error.&Our debugger is the latest version, but&it seems our version of&mscorwks.dll&is different than the one in the machine where we got the dump. Mscordacwks.dll is different too, of course. But Windbg should find mscordacwks in my symbol path... Let's verify that the path is correct:0:000& .sympath
Symbol search path is: srv*c:\symbolspub*/downloads/symbols
The symbol path is correctly pointing to our Microsoft public symbol server, that should be enough... I'm also&supposed to be debugging in the same architecture&because I took the dump in AMD64 and my machine is&AMD64, too. Let's try that command they mention in the error:0:000& .cordll -ve -u -l
CLRDLL: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll:2.0.50727.1434 f:0
doesn't match desired version 2.0.50727.832 f:0
CLRDLL: ERROR: DLL c:\symbolspub\mscordacwks_x86_x86_2.0..dll\461F2E2A566000\mscordacwks_x86_x86_2.0..dll init failure, Win32 error 0n87
CLR DLL status: ERROR: DLL c:\symbolspub\mscordacwks_x86_x86_2.0..dll\461F2E2A566000\mscordacwks_x86_x86_2.0..dll init failure, Win32 error 0n87
Interesting. We just confirmed the version we need of mscordacwks is different than the one we have, it seems we are getting the right mscordacwks version from the symbol server, but we can't initialize the dll.
Wait a sec! All that wow64 stuff we saw in the call stack implies that we are in the 64bit part of our 32bit application. Let's try to see 32bit stuff only:0:000& .load wow64exts
0:000& !sw
Switched to 32bit mode
Let's check the unmanaged call stack:0:000:x86& kL
002df57c 79f55b05 kernel32!RaiseException+0x53
002df5dc 7a0904d5 mscorwks!RaiseTheExceptionInternalOnly+0x226
002df6a0 79646e0c mscorwks!JIT_Throw+0xfc
mscorlib_ni!System.IO.__Error.WinIOError(Int32, System.String)+0x1e17f8
002df71c 79649b75 mscorlib_ni!System.IO.__Error.WinIOError()+0x1f
002df71c 06e1c8f7 mscorlib_ni!System.IO.Path.GetTempFileName()+0x1d9d5d
No wow64 stuff in there. This&is&a typical 32bit&call stack. We are good. Can we init mscordacwks.dll now?0:000:x86& .cordll -ve -u -l
CLRDLL: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll:2.0. f:0
doesn't match desired version 2.0. f:0
CLRDLL: Loaded DLL c:\symbolspub\mscordacwks_x86_x86_2.0..dll\461F2E2A566000\mscordacwks_x86_x86_2.0..dll
CLR DLL status: Loaded DLL c:\symbolspub\mscordacwks_x86_x86_2.0..dll\461F2E2A566000\mscordacwks_x86_x86_2.0..dll
It seems so! Let's check the managed call stack:0:000:x86& !clrstack
OS Thread Id: 0x2904 (0)
002df604 78be254a [HelperMethodFrame: df604]
002df6a8 79646e0c System.IO.__Error.WinIOError(Int32, System.String)
System.IO.__Error.WinIOError()
002df710 79649b75 System.IO.Path.GetTempFileName()
002df8cc 7b074fef System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
002df8d0 7b082365 [InlinedCallFrame: df8d0]
002df93c 7b147ff6 [InlinedCallFrame: df93c]
Ok, now we are really doing business. Which exception did we get?0:000:x86& !pe
Exception object: a1cc
Exception type: System.IO.IOException
Message: The directory name is invalid.
InnerException:
StackTrace (generated):
StackTraceString:
HResult: 8007010b
We can now continue from here.&&
Do you want to know more on debugging wow64? Check these links:
Leave a Comment
An error occurred while posting! Please retry posting your comment.DevExpress DXperience和eXpressApp Framework v8.3.X注册插件(已有新版2009.1) - 下载频道
- CSDN.NET
&&&&DevExpress DXperience和eXpressApp Framework v8.3.X注册插件(已有新版2009.1)
DevExpress DXperience和eXpressApp Framework v8.3.X注册插件(已有新版2009.1)
新版下载地址:http://download.csdn.net/source/1176724
最新DevExpress DXperience v8.3.X for Visual Studio 和eXpressApp Framework for Visual Studio 注册插件,安装说明:
1. 下载官方试用版安装程序,地址:/Downloads/NET/
2. 安装试用版程序
3. 安装本插件程序
注意事项:
1. 本程序不是破解程序,不会修改原版的DXperience和eXpressApp Framework的组件,而是作为Visual Studio 2005和Visual Studio 2008的插件来工作的,因此也只能工作在Visual Studio 2005和Visual Studio2008上,其他开发工具不支持
2. 在安装时,会提示是否编译License文件(默认是选中的),当选中这个选项时,需要在所有Build程序集的机器上安装本插件(例如TFS的Build服务器),这时候编译出来的程序集和使用官方注册版程序的结果相同;如果没有选中这个选项,那么不需要在所有Build程序集的机器上安装本插件,编译出来的程序集和使用官方注册版程序相比,缺少了License资源文件,不过程序运行结果是一样的,不会提示Trial信息
3. 安装程序的Customer Information界面输入的UserName信息,将作为DevExpress的注册信息显示在控件设计器菜单的About对话框里面
4. 如果不想用本插件了,到添加删除程序中卸载DevExpress Registration Add-In即可。
这是通用注册插件适用于v8.3.x的版本,程序做了一些调整。
强烈建议,在安装的时候,选中编译License文件选项,并在需要Build程序集的机器上安装本插件程序,这样编译的程序集和使用官方注册版程序的结果是一样的
有关本注册插件程序的更多说明,请见我的博客。
我的博客地址:http://hi.csdn.net/Danny_Su,有任何问题,请留言:)
详情请见:http://blog.csdn.net/Danny_Su/archive//4018511.aspx
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行App.net不到两天的时间融资50万美元-中国学网-中国IT综合门户网站
&&|&&责编:崔宁
Dalton&Caldwell(道尔顿&考德威尔)的Twitter替代品App.net&还没到两天的时间(38小时)就融资50万美元。
Caldwell宣布这微博网站时,它给用户提供256个特性,然而,它不像Twitter臭名昭著的140个特性,与原微博先锋相比令人大失所望,对开发人员和第三方应用程序来说,它是不透明状态。
最初的牵引一直缓慢进行,有专家认为这个应用程序可能不达到它的目标,今天当指针倾斜到钟表指向10:30&。通过这图显示已经超过6000个成员(支付50美元),1700个开发人员(支付100美元),超过50个应用程序行家(支付1000美元)。
(点小图查看大图)
进入融资目标之后,Caldwell也在不断更新他的个人网站,感谢本网站的支持者,让他们放心使用,宣称他会雇佣第三方的服务来验证付款。下一步是将包括网站的服务条款的起草,Caldwell指出修订将公开举办,这样用户可以提供反馈意见,并掌握未来的变化。
他写道:现在最重要的事情之一是我们需要整合一个服务条款操作网站。我在接下来的几天里将花大量的时间创建一个草案:我们的服务条款,我们的远期计划是在Github上举办。这样,人们可以看到它,提供反馈意见(甚至提出请求),并将与未来的变化保持同步。沿着这条路线,在App.net&上仍然有许多问题需要解答,它应该会被认为是一个操作的服务,而不仅仅是一个Alpha原型。
在上周Caldwell开始为服务引进Alpha,今天接待了1000活跃的访客,最终推动了资金。关于后面的项目上的评论,Caldwell告诉TNW,他关注且证明服务不仅仅是软件和自己能创建订阅的方法。
(点小图查看大图)
在过去的的一段时间该网站有一个急剧飙升,可能是由于英国著名演员Stephen&Fry(史蒂芬&弗莱)添加了自己的的贡献,他在Twitter名声很大,有460万名追随者。他在8月12日发了一条微博:刚刚加入app.net,令人兴奋的是新的人群资助的、社会的微博服务,去join.app.net。
Martin&Bryant&(马丁.布莱恩特)的权衡了支持服务的利弊得失,这依然在发展。如果你没有加入,现在注册也不晚。
如果你刚刚加入了,你就会有兴趣读完这份早期/原型客户的列表和在Github上的应用程序,包括令人印象深刻的Succynct&Chrome应用程序。它可以让你微博正确定位,还可以跟踪及时提到的服务。
&本文由最科技方李鹃编译,转载请注明出处:&/14037.html&
相关文章列表:
App.net融资50万美元:无广告的纯粹社交
App.net完成50万美元融资目标 或挑战Facebook
完美的方式分享Tweets 你尝试了吗?
Facebook和Twitter压榨开发者:挥霍平台生命力
本文相关搜索想让你的App成功?请远离这五条建议
发表于 16:08|
摘要:好的建议会助你一臂之力,不好的建议则会让你离你的目标越来越远。当你要去开发一款应用程序的时候,你会吸取各种各样的建议,如果在这些建议里面存在类似这样几条建议的话,那么请远离它们,你将会离成功更近一步。
【编者按】RAHUL VARSHNEYA,Arkenea LLC的创始人,同时是一位企业家和导师,在聆听众多创业者的经历后,总结了这五条最糟糕的建议,这很适合那些准备开发应用程序的人们,如果你在开发的过程中面对众多建议,不知道如何去抉择,那么不妨看看这篇文章。以下为译文:,你可以从你的朋友和网上获得很多建议,虽然这些建议当中有部分会是好的建议,但也会有部分建议会误导你,使你和你的应用程序陷入困境。我曾辅导过小几百个软件创业者,这使得我不得不煞费苦心的去聆听他们讲的关于他们这些年来经历所得到的忠告,我不希望你们经历同样的挑战,所以我从他们那里收集了一些甚至曾导致他们放弃开发程序的最糟糕的建议,并把它们列了出来:1、为你的应用程序申请专利权如果让我选择这里面最最糟糕的建议的话,我会选择这一条,作为一个创业者,开始建立自己的公司或者产品,你应该把重心放在产品/市场的适应性和牵引力上面,而不是申请一个专利权。这个建议存在诸多问题,但是让我们集中来看一个关键点。许多人追求专利保护,是因为他们担心自己的创意会被偷走,对于这我的看法是,建一个公司或者申请一个专利,你必须要做出选择。创意不会让产品成功,它只能让你实践的过程有差异,Google并没有和其他23个搜索引擎不同的创意,只是在执行的过程中产生了不同。因此请不要再害怕别人会和你有同样的创意。如果你已经建立了一些独特的东西,并且它是成功的,那么你可以着手申请专利了,如果不是,那么申请专利就没什么意义了。务必要记住,成功获得专利是费时费财的。2、最佳实践所有的业务和产品会建议你做什么,但是最终你还是凭着直觉去做,做你客户需求的产品,最佳的实践可以提升你的产品。如果当今所有的成功产品都去模仿上一代产品的最佳实践,我们就不会看到太多的创新,不是吗?你的客户是独一无二的,你的产品从构思到实践都是不同的,并且你的处境和市场行情也会有所不同,那么你怎么可能在不相同的市场里采用相同的最佳实践呢?即便有一些条件是相同的,你会想做同样的事情吗?3、市场调查对于建立一个移动的公司而言,用传统方式来进行市场调查已经无法运作了,我甚至不知道它是否能运用在其它行业,这可以做一个单独的讨论。当你为你的创意或者还没有投入开发的产品向你的朋友或者小组寻求意见的时候,你将会被误导。人们往往不知道他们想要些什么,他们知道他们目前存在的问题,但是这取决你找到解决他们问题的最佳办法,这是一个优秀创业者的标志。通常这些问题不会立即被解决,你需要顾客的反馈信息,关于你的解决方案或者执行方案是否都得到他们的共鸣。获得市场反馈的方式是,开发你产品的第一个版本,并观察用户使用他们时候的反应。4、建立一个商业计划创业往往不会一直按照计划执行的,过程中有太多的变化,即便你第一个版本的产品不会被用户接受,而你可能需要义无反顾的继续下去,那么一个商业计划会帮到你什么吗?把你的精力投入到思考客户想要什么,以及建立一个有效的解决方案。你创业所需要的是一种商业模式。它会帮助你在短期内理清你的产品和创业的路线。5、在两个平台上面同时开发应用程序同一天发布应用对于个体潜在客户具有着吸引力,而事实上这是不可能的。如果你有数百万的目标受众,你认为你两个平台的应用可以在同一时刻与他们接触吗?市场营销和销售时最大的挑战,这些在你创业的过程中都会遇到,针对一个平台(iOS或Android)开发你目前客户需求的产品,一旦你所开发的产品是这些人需求的,那么你可以把你产品复制到其他的平台上面,并取得成功,Instagram最初是在iOS上面推出的,其Android版本则是在两年之后才发行。没有人愿意在两个平台上面同时开发一个应用程序,那样只会浪费大量的时间和金钱。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章《真人快打X》PAX展演示视频 脑袋被打得稀烂
方式一:扫一扫
支持各类二维码扫描软件
方式二:发一发
免费发送App到手机
看不清验证码不正确
该短信不收取任何费用
方式三:下一下
下载App观看
还有更多攻略和游戏礼包等着你
嵌入代码:
这个支持手机播放哦
专区热点·
大家都在看
手机看视频
阿喜&宠辱不惊
米兰达Miranda
White55开解说

我要回帖

更多关于 网监平台app 的文章

 

随机推荐