WP8 एमुलेटर WP7 एमुलेटर का एक पूर्ण पुनर्लेख है, इसलिए यह असंभव है कि यह उसी गैर-दस्तावेज डीबग संदेशों का समर्थन करता है। दिन के अंत में सवाल यह है कि आप लॉग इन करने का प्रयास कर रहे हैं?
लॉगिंग एप्लिकेशन विशिष्ट संदेशों
चलो कहते हैं कि कुछ दिलचस्प एक महत्वपूर्ण बटन पर क्लिक करके अपने एप्लिकेशन में होता है। आप इसे अपने ऐप में लॉग करना चाहते हैं और उस संदेश को IsoStore (या एक कस्टम वेब सेवा पर भेजें) लिखना चाहते हैं। मैं अपने WP8 & Win8 लॉगिंग के लिए मेट्रोलॉग का उपयोग करता हूं लेकिन जब तक फ़ाइलों को IsoStore पर लिखा जाता है तब तक आप जो भी चाहें उसका उपयोग कर सकते हैं। मेट्रोलॉग @https://github.com/mbrit/MetroLog
देखें, फिर आप फ़ाइल को पढ़ने के लिए CoreCon API का उपयोग कर सकते हैं। मैं, WP8 ofr इन API का एक कोड नमूना अपलोड कर दिया है @https://stackoverflow.com/a/13429709/81687
लॉगिंग एम्यूलेटर विशिष्ट संदेशों
कहो आप जब एमुलेटर सक्रिय किया गया था देखने में रुचि रखते हैं, जब जूम स्थापित किया गया था, अगर एक स्क्रीनशॉट असफल रहा या यदि कोई स्पर्श घटना हुई। WP8 एमुलेटर उन अन्य घटनाओं को लॉग इन करने के लिए ईटीडब्ल्यू प्रदाता ff86852d-541c-4f7e-98c5-5761e8cb7074 का उपयोग करता है।आप यहां ईटीडब्लू के बारे में अधिक पढ़ सकते हैं @http://msdn.microsoft.com/en-us/magazine/cc163437.aspx
सबसे पहले, XDE.exe एमुलेटर लॉन्च करने और ईटीडब्ल्यू आउटपुट कैप्चर करना प्रारंभ करने के लिए PerfView डाउनलोड करें।

- WP8 के लिए XDE.exe के स्थान पर कार्यशील निर्देशिका सेट करें।
- हाइपर-वी छवि बनाने के लिए पहले VS2012 से उस एमुलेटर को चलाने के लिए सुनिश्चित करें। या यदि आप जानते हैं कि आप छवि को स्वयं कैसे क्रैंक कर सकते हैं और/VHD पैरामीटर का उपयोग कर सकते हैं।
- XDE.exe का आविष्कार करते समय आप हाइपर-वी प्रबंधक से/NAME पैरामीटर प्राप्त कर सकते हैं।
- अतिरिक्त प्रदाता को "ff86852d-541c-4f7e-98c5-5761e8cb7074" शामिल करने के लिए सुनिश्चित करें।
अब पेर्फ व्यू से एमुलेटर चलाएं, कुछ सामान करें, एमुलेटर बंद करें और जानकारी एकत्र करना बंद करें। एक बार ऐसा करने के बाद आप एमुलेटर में चलने वाली हर चीज़ का लॉग देख सकते हैं। एक बार प्रदाता आईडी के तहत फ़िल्टर करने के बाद दिलचस्प सामग्री "ईवेंट" लॉग के अंतर्गत होती है।

ऊपर प्रिंट स्क्रीन आप घटनाओं को देख सकते हैं और जब वे एमुलेटर में हुआ था। उदाहरण के लिए, इवेंट 76 माइक्रोफोन कैप्चर थ्रेड को एमुलेटर के लिए स्टार्ट किया गया है और यह प्रोफाइलिंग सत्र में 27 सेकंड हुआ। ईवेंट कोड की पूरी सूची के लिए XDE.exe असेंबली में Microsoft.Xde.Etw.WindowsPhoneEmulatorProvider c'tor देखें। यह यहाँ अपने को समझाने के लिए चिपकाया नकल है:
public WindowsPhoneEmulatorProvider()
{
this.m_provider = new EventProviderVersionTwo(new Guid("ff86852d-541c-4f7e-98c5-5761e8cb7074"));
this.XdeStarted = new EventDescriptor(0, 0, 9, 4, 0, 0, -9223372036854775808L);
this.XdeStopped = new EventDescriptor(1, 0, 0, 4, 0, 0, 0L);
this.DesktopResolutionChanged = new EventDescriptor(2, 0, 0, 4, 0, 0, 0L);
this.InvalidLanguageSpecified = new EventDescriptor(3, 0, 0, 2, 0, 0, 0L);
this.CantFindVhd = new EventDescriptor(5, 0, 0, 2, 0, 0, 0L);
this.DiffDiskVhdRequiresVhdPath = new EventDescriptor(6, 0, 0, 2, 0, 0, 0L);
this.InvalidVideoParam = new EventDescriptor(7, 0, 0, 2, 0, 0, 0L);
this.InvalidMemorySize = new EventDescriptor(8, 0, 0, 2, 0, 0, 0L);
this.CantFindVM = new EventDescriptor(9, 0, 0, 2, 0, 0, 0L);
this.UnableToSendKeyToVM = new EventDescriptor(10, 0, 0, 2, 0, 0, 0L);
this.FailedToCreateDiffVhd = new EventDescriptor(11, 0, 0, 2, 0, 0, 0L);
this.FailedToCreateVM = new EventDescriptor(12, 0, 0, 2, 0, 0, 0L);
this.FailedVMStop = new EventDescriptor(13, 0, 0, 2, 0, 0, 0L);
this.FailedStartVM = new EventDescriptor(14, 0, 0, 2, 0, 0, 0L);
this.UnableToConnectToGuest = new EventDescriptor(15, 0, 0, 2, 0, 0, 0L);
this.ConnectedToGuest = new EventDescriptor(0x10, 0, 0, 4, 0, 0, 0L);
this.GuestIndicatedResolution = new EventDescriptor(0x11, 0, 0, 4, 0, 0, 0L);
this.LoadedSkin = new EventDescriptor(0x12, 0, 0, 4, 0, 0, 0L);
this.ButtonPressed = new EventDescriptor(0x13, 0, 0, 4, 0, 0, 0L);
this.VirtualMachineStateChanged = new EventDescriptor(20, 0, 0, 4, 0, 0, 0L);
this.ProxyInitialized = new EventDescriptor(4, 0, 0, 4, 0, 0, 0L);
this.UsageShown = new EventDescriptor(0x16, 0, 0, 4, 0, 0, 0L);
this.DisplayOrientationSet = new EventDescriptor(0x17, 0, 0, 4, 0, 0, 0L);
this.ZoomSet = new EventDescriptor(0x18, 0, 0, 4, 0, 0, 0L);
this.ScreenshotSavedToFile = new EventDescriptor(0x19, 0, 0, 4, 0, 0, 0L);
this.KeySentToVM = new EventDescriptor(0x1a, 0, 0, 4, 0, 0, 0L);
this.MouseEventSentToVM = new EventDescriptor(0x1b, 0, 0, 4, 0, 0, 0L);
this.UnableToSendMouseEventToVM = new EventDescriptor(0x1c, 0, 0, 0, 0, 0, 0L);
this.BringToFrontExecuted = new EventDescriptor(0x1d, 0, 0, 4, 0, 0, 0L);
this.ConnectedToAccelerometer = new EventDescriptor(30, 0, 0, 4, 0, 0, 0L);
this.UnableToConnectToAccelermometer = new EventDescriptor(0x1f, 0, 0, 0, 0, 0, 0L);
this.InvalidWindowsDetected = new EventDescriptor(0x20, 0, 0, 2, 0, 0, 0L);
this.HyperVNotEnabled = new EventDescriptor(0x21, 0, 0, 2, 0, 0, 0L);
this.AskedToConnectExternalSwitches = new EventDescriptor(0x22, 0, 0, 4, 0, 0, 0L);
this.ConnectedToGuestNotifications = new EventDescriptor(0x23, 0, 0, 4, 0, 0, 0L);
this.UnableToConnectToGuestNotifications = new EventDescriptor(0x24, 0, 0, 2, 0, 0, 0L);
this.FailedToSetVmProperties = new EventDescriptor(0x25, 0, 0, 2, 0, 0, 0L);
this.FailedToInitializeSnapshots = new EventDescriptor(0x26, 0, 0, 2, 0, 0, 0L);
this.FailedToSetVhd = new EventDescriptor(0x27, 0, 0, 2, 0, 0, 0L);
this.RdpServerDisconnected = new EventDescriptor(40, 0, 0, 4, 0, 0, 0L);
this.ScreenshotFailed = new EventDescriptor(0x29, 0, 0, 2, 0, 0, 0L);
this.AccelerometerSendFailed = new EventDescriptor(0x2a, 0, 0, 2, 0, 0, 0L);
this.LocationSendFailed = new EventDescriptor(0x2b, 0, 0, 2, 0, 0, 0L);
this.SnapshotStarted = new EventDescriptor(0x2c, 0, 0, 0, 0, 0, 0L);
this.SnapshotSucceeded = new EventDescriptor(0x2d, 0, 0, 0, 0, 0, 0L);
this.SnapshotFailed = new EventDescriptor(0x2e, 0, 0, 2, 0, 0, 0L);
this.CloseAfterSilentSnapshot = new EventDescriptor(0x2f, 0, 0, 0, 0, 0, 0L);
this.ApplySnapshotFailed = new EventDescriptor(0x30, 0, 0, 2, 0, 0, 0L);
this.RemovingSnapshotAfterFailedConnect = new EventDescriptor(50, 0, 0, 0, 0, 0, 0L);
this.RemovingSnapshotAfterSettingsDidntMatch = new EventDescriptor(0x33, 0, 0, 0, 0, 0, 0L);
this.ConnectedToShellReadyPipe = new EventDescriptor(0x34, 0, 0, 4, 0, 0, 0L);
this.UnableToConnectToShellReadyPipe = new EventDescriptor(0x35, 0, 0, 2, 0, 0, 0L);
this.ConnectedToTouch = new EventDescriptor(0x36, 0, 0, 4, 0, 0, 0L);
this.UnableToConnectToTouch = new EventDescriptor(0x37, 0, 0, 2, 0, 0, 0L);
this.TouchSendFailed = new EventDescriptor(0x38, 0, 0, 2, 0, 0, 0L);
this.SendTextFailed = new EventDescriptor(0x39, 0, 0, 2, 0, 0, 0L);
this.ReceiveAudioFromGuestWithSpinFailed = new EventDescriptor(0x3a, 0, 0, 2, 0, 0, 0L);
this.SendMicrophoneDataToGuestFailed = new EventDescriptor(0x3b, 0, 0, 2, 0, 0, 0L);
this.LoadUserSettingsFailed = new EventDescriptor(60, 0, 0, 0, 0, 0, 0L);
this.SetGuestSystemTimeAndZoneFailed = new EventDescriptor(0x3d, 0, 0, 2, 0, 0, 0L);
this.HypervisorNotRunning = new EventDescriptor(0x3e, 0, 0, 2, 0, 0, 0L);
this.HyperVManagementServiceNotRunning = new EventDescriptor(0x3f, 0, 0, 2, 0, 0, 0L);
this.UserAlreadyInHyperVAdmin = new EventDescriptor(0x40, 0, 0, 4, 0, 0, 0L);
this.UserAddedToHyperVAdmins = new EventDescriptor(0x41, 0, 0, 4, 0, 0, 0L);
this.FailedToAddUserToHyperVAdmins = new EventDescriptor(0x42, 0, 0, 0, 0, 0, 0L);
this.SendKeyboardEvent = new EventDescriptor(0x43, 0, 0, 4, 0, 0, 0L);
this.SendKeyboardEventFailed = new EventDescriptor(0x44, 0, 0, 2, 0, 0, 0L);
this.AudioPlayThreadStarted = new EventDescriptor(0x45, 0, 0, 0, 0, 0, 0L);
this.AudioPlayThreadExited = new EventDescriptor(70, 0, 0, 0, 0, 0, 0L);
this.AudioDataReceivedFromGuest = new EventDescriptor(0x47, 0, 0, 0, 0, 0, 0L);
this.AudioGlitch = new EventDescriptor(0x48, 0, 0, 0, 0, 0, 0L);
this.AudioPaused = new EventDescriptor(0x49, 0, 0, 0, 0, 0, 0L);
this.AudioResumed = new EventDescriptor(0x4a, 0, 0, 0, 0, 0, 0L);
this.AudioDeviceChange = new EventDescriptor(0x4b, 0, 0, 0, 0, 0, 0L);
this.MicrophoneCaptureThreadStarted = new EventDescriptor(0x4c, 0, 0, 0, 0, 0, 0L);
this.MicrophoneCaptureThreadExited = new EventDescriptor(0x4d, 0, 0, 0, 0, 0, 0L);
this.MicrophoneDataSentToGuest = new EventDescriptor(0x4e, 0, 0, 0, 0, 0, 0L);
this.MicrophoneDeviceChange = new EventDescriptor(0x4f, 0, 0, 0, 0, 0, 0L);
this.GetNetworkInfoFailed = new EventDescriptor(90, 0, 0, 2, 0, 0, 0L);
this.IPRenewalInitiated = new EventDescriptor(0x5b, 0, 0, 4, 0, 0, 0L);
}
लॉगिंग हाइपर-वी से कार्यक्रमों की मेजबानी की ओएस
मान लीजिए कि आप या कैसे WP8 JITs विधानसभाओं के बारे में अधिक जानना चाहते हैं जब यह कचरा करता है संग्रह। वीएस2012 विश्लेषण उपकरण के साथ जहाजों जो उस जानकारी को प्रोफ़ाइल, स्टोर और प्रदर्शित करते हैं। उदाहरण के लिए, यहाँ कैसे एक रूपरेखा सत्र प्रारंभ करने में है:

एक बार रूपरेखा सत्र से किया जाता है तो आप अपने ऐप के अंतर्गत "PerfLogs" फ़ोल्डर रूपरेखा सत्र के लिए डेटा है देख सकते हैं। यदि आपने CPU/निष्पादन का प्रोफाइल किया है तो आप उस फ़ोल्डर में VSPX फ़ाइलों को देख सकते हैं। VSPX फ़ाइल को ज़िप पर पुनर्नामित करें और इसमें मौजूद फ़ाइलों को निकालें। उस ज़िप में आपको एक ईटीएल फ़ाइल मिल जाएगी। वह ईटीएल फ़ाइल अभी तक एक और ईटीडब्लू लॉग है जिसे हम पेर्फव्यू की जांच कर सकते हैं।

जब हम PerfView में इस तरह के एक ETL फ़ाइल को खोलने हम देख सकते हैं जब प्रत्येक वर्ग JITTed था, यह कब तक लिया और आईएल & मूल निवासी आकार। उदाहरण के लिए हमारे एप्लिकेशन के अनुप्रयोग वर्ग 289.

के 105 के एक आईएल आकार और देशी आकार के साथ 123.461ms पर JITTed किया गया था, 1.2ms के लिए आप भी का उपयोग कर के बजाय सीधे रूपरेखा API का उपयोग करने में सक्षम हो सकता उस डेटा को कैप्चर करने के लिए VS2012। यदि ऐसा कुछ है जो आप करना चाहते हैं, तो आपको VS2012 के SilverlightProfiler इंजीनियर * *। डीएल असेंबली को रिवर्स करना होगा ताकि वे यह देख सकें कि वे क्या कर रहे हैं और VS2012 के बाहर इसे फिर से बनाएं।
धन्यवाद।कोशिश करेंगे और आपको – Lokeshwer
महान काम बताएंगे ... :) – StezPet