2011-08-11 55 views
1

我第一次为WP7创建堆栈轨迹。调试WP7崩溃

这给我带来了特别的麻烦,并且正从我的应用的几个用户弹出。我需要一些帮助来破译这个。

这是堆栈跟踪:

Frame Image     Function                    Offset  
0  coredll.dll   xxx_RaiseException                32   
1  mscoree3_7.dll WatsonUnhandledManagedException             300  
2  mscoree3_7.dll Dbg_NotifyManagedException              136  
3  mscoree3_7.dll FirstPassException                1044  
4       TransitionStub                 0   
5       System.ThrowHelper.ThrowArgumentException           52   
6       System.Collections.Generic.Dictionary`2.Insert         344  
7       System.IO.IsolatedStorage.IsolatedStorageSettings.Add        92   
8       traffic_and_travel_uk.Services.push_settings.button4_Click      92   
9       System.Windows.Controls.Primitives.ButtonBase.OnClick        132  
10       System.Windows.Controls.Button.OnClick           120  
11       System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp     228  
12       System.Windows.Controls.Control.OnMouseLeftButtonUp        100  
13       MS.Internal.JoltHelper.FireEvent             800  
14  mscoree3_7.dll IL_CallManaged                 860  
15  mscoree3_7.dll IL_CallDelegateInternal               176  
16  mscoree3_7.dll makeComPlusCall                 984  
17  mscoree3_7.dll makeComPlusCallReturnInt               40   
    18                           0   
19  agcore.dll  CCoreServices::CLR_FireEvent              400  
20  npctrl.dll  CommonBrowserHost::CLR_FireEvent             36   
21  npctrl.dll  CControlBase::ScriptCallback              536  
22  npctrl.dll  CXcpDispatcher::OnScriptCallback             300  
23  npctrl.dll  CXcpDispatcher::OnReentrancyProtectedWindowMessage        712  
    24  npctrl.dll  CXcpDispatcher::WindowProc              408  
25  coredll.dll  SendMessageW                  96   
26  npctrl.dll  CXcpBrowserHost::SyncScriptCallbackRequest          196  
27  agcore.dll  CEventManager::RaiseControlEvents             208  
28  agcore.dll  CEventManager::Raise                320  
29  agcore.dll  CEventManager::RaiseInterleavedRoutedEvents          360  
30  agcore.dll  CInputManager::InterleaveMouseAndGesture           320  
31  agcore.dll  CInputManager::ProcessMouseInput             1768  
32  agcore.dll  CInputManager::SimulateMouse              248  
33  agcore.dll  CInputManager::ProcessGestureInput            4492  
34  agcore.dll  CInputManager::ProcessInput              440  
35  agcore.dll  CCoreServices::ProcessInput              68   
36  npctrl.dll  CXcpBrowserHost::HandleInputMessage            920  
37  npctrl.dll  CXcpControl::OnGestureEvent              460  
38  npctrl.dll  CXcpControl::ProcessWindowMessage             1868  
39  npctrl.dll  ATL::CWindowImplBaseT_ATL::CWindow,ATL::CWinTraits_1442840576,0_ _::WindowProc 140  
40  coredll.dll  DispatchMessageW 
41  TaskHost.exe  CHostActiveXModule::RunMessageLoop            424  
42  TaskHost.exe  ATL::CAtlExeModuleT_CHostActiveXModule_::Run          40   
43  TaskHost.exe  WinMain                   1420  
44  TaskHost.exe  WinMainCRTStartupHelper               60   
45  coredll.dll  MainThreadBaseFunc                428 

所以我可以看到它被陷在button4_Click功能和新增ISO存储设置,但还有什么是怎么回事?我不明白是什么造成了一些人的崩溃。

这是有问题的代码:

private void button4_Click(object sender, RoutedEventArgs e) 
    { 
     var settings = IsolatedStorageSettings.ApplicationSettings; 
     settings.Add("FirstPush", "true"); 

     var hide = Visibility.Collapsed; 
     grid4.Visibility = hide; 
     SE_service_btn_Click1(); 
    } 

感谢。任何指导赞赏。

回答

2

看那documentationIsolatedStorageSettings.Add()

ArgumentException key already exists in the dictionary. 

使用IsolatedStorageSettings["FirstPush"] = "true"代替。这将创建或更新密钥,如果它已经存在没有抛出异常。

+0

非常感谢,我想这可能是它。除了在堆栈中的IsoStorage线之上的异常之外,什么告诉你异常是由IsoStorage引起的? –

+0

那么,该方法的文档明确指出,如果密钥已经存在,并且在写入密钥之前没有检查密钥是否存在,则会引发该异常。我猜想你的应用程序在第二次按下该按钮时会一致地出现相同的异常:-) –