(SOS ملحق تصحيح الأخطاء) SOS.dll
يساعدك SOS ملحق تصحيح الأخطاء (SOS.dll) في تصحيح برامج مدارة في مصحح الأخطاء WinDbg.exe و في Visual Studio بواسطة توفير معلومات حول البيئة الداخلية لوقت تشغيل اللغة العامة (CLR), و للحصول على SOS.dll قم بتثبيت أدوات تصحيح الأخطاء لحزمة نوافذ من الـ WDK و من موقع ويب أدوات المطور .
يتم تلقائياً تثبيت ملحق تصحيح الأخطاء SOS مع Visual Studio, و لتشغيل الأداة استخدم موجه أوامر Visual Studio.. في موجه الأوامر، اكتب ما يلي:
![command] [options]
الأوامر
Command |
الوصف |
---|---|
AnalyzeOOM (ao) |
يعرض المعلومات من أجل OOM الأخيرة التي تمت تشغيل طلب تخصيص إلى كومة الذاكرة المؤقتة الخاصة بتجميع البيانات المهملة. (في تجميع البيانات المهملة الملقم، يعرض OOM، أن وجدت، تشغيل كل كومة ذاكرة مؤقتة لمجموعة البيانات المهملة.) |
BPMD [-nofuturemodule] [<module name> <method name>] [-md <MethodDesc>] -list -clear <pending breakpoint number> -clearall |
إنشاء نقطة توقف للأسلوب المحدد في الوحدة النمطية المحددة. إذا كانت وحدة نمطية? المحددة و أسلوب قد لا يتم تم تحميله، comm هذا و ينتظر إعلام تم تحميله وحدة نمطية? و في نفس الوقت (JIT) ترجمة قبل إنشاء نقطة توقف. يمكنك إدارة القائمة معلّقة نقاط التوقف باستخدام -list، -clear، و -clearallالخيارات:
|
CLRStack [-a] [-l] [-p] [-n] |
يوفر تتبع مكدس من تعليمات برمجية مدارة فقط.
ملحق تصحيح SOS لا يتم عرض إطارات انتقال x64 و IA-تستند إلى x64 الأنظمة الأساسية. |
COMState |
يسرد طراز الحيز COM لكل مؤشر ترابط و مؤشر Context إذا كان متوفر. |
DumpArray [-start <startIndex>] [-length <طول>] [-details] [-nofields] <عنوان كائن صفيف> -أو- DA [-start <startIndex>] [-length <طول>] [-detail] [-nofields] عنوان كائن صفيف> |
يفحص عناصر كائن صفيف.
|
DumpAssembly<العنوان تجميع> |
يعرض معلومات حول تجميع. الأمر DumpAssembly يسرد الوحدات النمطية المتعددة إذا كانت موجودة. يمكنك يحصل العنوان تجميع بواسطة استخدام DumpDomainالأمر. |
DumpClass <عنوان EEClass> |
يعرض معلومات حول البنية EEClass المقترنة بنوع. الأمر DumpClass يعرض قيم حقل ثابتة و لكن لا يقوم بعرض قيم حقل غير ثايتة استخدم theDumpMT,DumpObj,Name2EE, أوToken2EEالأمر إلى يحصل anEEClassبنية العنوان. |
DumpDomain< مجال العنوان >] |
تعداد كل Assemblyكائن هو تم تحميلهه ضمن المحدد AppDomainكائن العنوان. و عندما يتم الاستدعاء من غير معلمات، فإن الأمر DumpDomain يسرد كافة الكائنات AppDomain في عملية. |
DumpHeap [-stat] [-strings] [-short] [-min <size>] [-max <size>] [-thinlock] [-startAtLowerBound] [-mt <MethodTable address>] [-type <partial type name>][start [end]] |
يعرض معلومات حول كومة الذاكرة المؤقتة المجمعة في البيانات المهملة و مجموعة إحصائيات حول الكائنات. إذا كشف تجزئة زائدة في كومة الذاكرة المؤقتة لمجمع البيانات المهملة, فإن الأمر DumpHeap يقوم بعرض تحذير.
|
DumpIL<كائن مدارة DynamicMethod> | < مؤشر DynamicMethodDesc> | < مؤشر MethodDesc > |
Dهوplays اللغة Microsoft Office 2010 Suite المتوسطة (MSIL) التي هو مقترن بإحدى الطرق التي تمت إدارتها. ملاحظة هذا MSIL ديناميكي هو تصدر بشكل مختلف عن MSIL التي هو تحميلها من تجميع. MSIL الديناميكية تشير إلى الكائنات في صفيفة كائن مدار بدلاً من الرموز المميزة لبيانات التعريف. |
DumpLog -addr< addressOfStressLog >] [< من Filename >] |
يكتب محتويات سجل ضغط ما في الذاكرة إلى الملف المحدد, إذا لم تحدد اسماً، يقوم هذا الأمر بإنشاء ملف يسمى StressLog.txt في الدليل الحالي. يساعدك يسجل الضغط في ذاكرة في تشخيص فشل الضغط بدون استخدام التأمين أو الادخال/الاخراج. لتمكين سجل الضغط, قم بتعيين مفاتيح التسجيل التالية ضمن HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework: DWORD) StressLog = 1) DWORD) LogFacility = 0xffffffff) DWORD) StressLogSize = 65536) اختياري -addrخيار يتيح لك تحديد يسجل الضغط غير يسجل. شكل افتراضي |
DumpMD <عنوان MethodDesc> |
يعرض معلومات حول بنية MethodDesc على العنوان المحدد. يمكنك استخدام الأمر IP2MD للحصول على عنوان البنية MethodDesc من دالة مدارة. |
DumpMT [-MD] <عنوان MethodTable> |
يعرض معلومات حول جدول أسلوب على العنوان المحدد, فتحديد الخيار -MD يعرض قائمة لكافة أساليب معرّفة مع الكائن. يحتوي كل كائن مُدار على مؤشر جدول أسلوب. |
DumpMethodSig <sigaddr> <moduleaddr> |
يعرض معلومات حول بنية MethodSig على العنوان المحدد. |
DumpModule [-mt] <عنوان وحدة نمطية> |
يعرض معلومات حول وحدة نمطية على العنوان المحدد, فالخيار -mt يعرض كافة الأنواع المعرّفة في وحدة نمطية و كافة الأنواع المشار إليها من قبل الوحدة النمطية. يمكنك استخدام DumpDomainأو DumpAssemblyالأمر إلى لاسترداد الالعنوان وحدة نمطية. |
DumpObj [-nofields] <object address> -أو- DO<عنوان كائن> |
يعرض معلومات حول كائن ما على العنوان المحدد, فالأمر DumpObj يعرض الحقول و معلومات البنية EEClass و جدول الأسلوب و الحجم للكائن. يمكنك استخدام الأمر DumpStackObjects لاسترداد عنوان كائن. لاحظ أنه يمكنك تشغيل الأمر DumpObj على حقول من نوع CLASS لأنها أيضاً كائنات. -nofieldsيمنع خيار حقول لعرض الكائن، ومفيد للكائنات كسلسلة أحرف. |
DumpRuntimeTypes |
يعرض كائنات النوع لوقت التشغيل في كومة الذاكرة المؤقتة لحاوي المهملات و يسرد أسماء النوع المقترنة و جداول الأسلوب الخاصة به. |
DumpStack [-EE] [-n] [top stack [bottom stack]] |
يعرض تتبع مكدس.
تشغيل الأنظمة الأساسية x86 و x64، DumpStackالأمر إنشاء تتبع مكدس مطول. في الأنظمة IA-تستند إلى x64 الأساسية DumpStackيحاكي الأمر المصحح من Kالأمر. top bottomيتم تجاهل معلمات تشغيل الأنظمة الأساسية IA-تستند إلى x64. |
DumpSig<sigaddr>< moduleaddr > |
يعرض معلومات حول بنية Sig على العنوان المحدد. |
DumpSigElem <sigaddr>< moduleaddr > |
عرض عنصر مفرد من كائن توقيع. في معظم الحالات، يجب عليك استخدام DumpSigإلى انظر الكائنات فردية التوقيع. ومع ذلك، في حالة تلف أحد التواقيع في طريقة، يمكنك استخدام DumpSigElemقراءة أجزاء صحيحة من it. |
DumpStackObjects [-verify] [top stack [bottom stack]] -أو- DSO [-verify] [top stack [bottom stack]] |
يعرض كافة الكائنات المدارة التي تم العثور عليها في حدود المكدس الحالي. الخيار -verify يتحقق من صحة كل حقل غير ثابت CLASS لحقل كائن ما. استخدام الأمر DumpStackObject مع أوامر تتبع مكدس مثل الأمر K و الأمر CLRStack لتحديد القيم للمتغيرات المحلية و المعلمات. |
DumpVC <عنوان MethodTable> <عنوان> |
يعرض معلومات حول الحقول لفئة القيمة على العنوان المحدد. المعلمة MethodTable تسمح للأمر DumpVC لتفسير الحقول بشكل صحيح, ففئات القيم لا تملك جدول أسلوب كما على الحقل الأول . |
EEHeap [-gc] [-loader] |
يعرض معلومات حول ذاكرة العملية المستهلكة من قبل هياكل بيانات داخلية لوقت تشغيل اللغة العامة. تقوم الخيارات -gc و -loader بتحديد الإخراج لهذا الأمر إلى حاوي المهملات أو بنيات بيانات محمّلة. إن معلومات حاوي المهملات تقوم بسرد النطاقات لكل قطعة في كومة الذاكرة المؤقتة المدارة, و إذا كان المؤشر يقع ضمن نطاق قطعة قدمت بواسطة -gc،فإن المؤشر عبارة عن مؤشر لكائن. |
EEStack [-short] [-EE] |
تشغيل الأمر DumpStack على كافة مؤشرات الترابط في العملية. الخيار -EE يتم تمريره مباشرة إلى الأمر DumpStack, و المعلمة -short تحدد الإخراج للأنواع التالية من مؤشرات الترابط:
|
EEVersion |
يعرض إصدار وقت تشغيل اللغة العامة. |
EHInfo [<عنوان MethodDesc>] [<عنوان تعليمات برمجية>] |
يعرض محظورات التعامل للاستثناء في أسلوب محدد, هذا comm و عرض عناوين الرموز و إزاحة لحظر عبارة ( tryحظر) و حظر hوler ( catchحظر). |
FAQ |
عرض الأسئلة المتداولة. |
FinalizeQueue [-detail] | [-allReady] [-short] |
يعرض كافة الكائنات التي تم تسجيلها للإنهاء.
|
FindAppDomain <عنوان كائن> |
تحديد مجال التطبيق لكائن على العنوان المحدد. |
FindRoots -gen <N> | -gen any |<كائن العنوان> |
يؤدي المصحح إلى فصل في debuggee تشغيل المجموعة التالية من إنشاء المحدد. التأثير هو يعيد تعيين المعاملة كما يحدث فواصل. إلى فاصل في المجموعة التالية، يكون لديك إلى إعادة إصدار الأمر. النموذج < العنوان الكائن > من القيم بالموضع هو الأمر هو استخدامه بعد الفاصل يعود -genأو -gen anyحدث. في هذا الوقت، debuggee هو في الحالة الصحيحة ل FindRootsللتعرف على الجذور للكائنات من الحالي condemned generations. |
GCHandles [-perdomain] |
يعرض إحصائيات حول مؤشرات حاوي المهملات في العملية. -perdomainخيار ترتيب الإحصائيات بواسطة مجال تطبيق. استخدام الأمر GCHandles للعثور على تسرب للذاكرة حدث بسبب تسرب لمعالج حاوي المهملات. فعلى سبيل المثال، يحدث تسرب للذاكرة عندما يحتفظ بصفيف كبير لأن مؤشر قوي لحاوي مهملات ما يزال يشير إليه و يتم تجاهل المؤشر دون الإفراج عنه. |
GCHandleLeaks |
يبحث عن ذاكرة من أجل أية مراجع لمؤشرات حاوي المهملات القوية و المقيدة في العملية و يعرض النتائج, و في حالة تم العثور على مؤشر فإن الأمر GCHandleLeaks يعرض العنوان للمرجع, و إذا لم يتم العثور على مؤشر في ذاكرة فإن هذا الأمر يعرض إعلام ما. |
GCInfo<العنوان MethodDesc><تعليمات برمجية العنوان> |
يعرض البيانات التي تشير إلى متى التسجيلات أو مواقع المكدس تحتوي على الكائنات المدارة, و في حالة حدوث تجميع البيانات المهملة, فإنه يجب على المجمّع معرفة المواقع لمراجع الكائنات بحيث يمكن تحديثها مع قيم مؤشر كائن جديدة. |
GCRoot [-nostacks] <عنوان كائن> |
يعرض معلومات حول المراجع (أو الجذور) لكائن عند العنوان المحدد. يقوم الأمر GCRoot بفحص كومة الذاكرة المؤقتة المدارة بأكملها و جدول المؤشر للمؤشرات داخل كائنات أخرى و المؤشرات على المكدس, كل كدسة هو ثم البحث عن مؤشرات للالكائنات، وقائمة الانتظار أداة الإنهاء هو أيضا بالبحث. لا يقوم هذا الأمر بتحديد ما إذا كان جذر مكدس صالح أم يتم تجاهله, فاستخدم الأوامر CLRStack و U لتفكيك الإطار الذي تنتمي إليه القيمة الوسيطة أو المحلية من أجل تحديد ما إذا كان جذر المكدس لا يزال قيد الاستخدام. الخيار -nostacks يقوم بتقييد البحث لمؤشرات حاوي المهملات و كائنات freachable. |
GCWhere < كائن العنوان > |
قم بعرض الموقع والحجم في تجميع البيانات المهملة كومة ذاكرة مؤقتة للوسيطة التي تم تمريرها. عندما يقع وسيطة في الكومة المدار ولكن هو العنوان كائن صالح لا، والحجم هو dهوplayed ك 0 (صفر). |
help<الأمر>]faq] |
Dهوplays متوفر على الجميع الأوامر عندما لا توجد معلمات هو المحددة، أو dهوplays تعليمات معلومات مُفصل حول الأمر المعين. المعلمة faq تعرض إجابات للأسئلة المتداولة. |
HeapStat [-inclUnrooted | -iu] |
عرض أحجام الجيل لكومة ذاكرة مؤقتة لكل و إجمالي المساحة الحرة في كل الجيل تشغيل كل كومة ذاكرة مؤقتة. إذا- inclUnrootedيتم تحديد خيار، يتضمن التقرير معلومات حول الالكائنات المدارة من تجميع البيانات المهملة كومة ذاكرة مؤقتة التي لم يعد يتم تحديد جذر. |
HistClear |
قم بتحرير أي من موارد المستخدمة بواسطة لمجموعة من Histالأوامر. بشكل عام، لم يكن إلى صراحة باستدعاء HistClear، لأن كل HistInitتنظيف موارد السابقة. |
HistInit |
تهيئة بنيات SOS من حفظها في debuggee يسجل الضغط. |
HistObj <obj_address> |
قم بفحص الجميع السجلات لإعادة تحديد موقع يسجل من الضغط ويعرض سلسلة relocations تجميع البيانات المهملة والتي قد تم الافتتاح إلى تمريره العنوان كوسيطة. |
HisttObjFind <obj_address> |
قم بعرض الجميع إدخالات السجل التي تشير إلى كائن عند العنوان المعين. |
HistRoot <جذر> |
يعرض معلومات تتعلق إلى relocations الجذر المحدد والعروض الترويجية. يمكن استخدام القيمة جذر إلى تعقب حركة كائن المجموعات البيانات المهملة. |
IP2MD <عنوان تعليمات برمجية> |
يعرض MethodDescبنية عند العنوان المعين في تعليمات برمجية الذي تم تحويله برمجياً JIT. |
ListNearObj(lno)<obj_address> |
عرض الكائنات بالسابقة و بعد العنوان المعين. comm و يبحث عن العنوان الموجود في كومة ذاكرة مؤقتة لمجموعة البيانات المهملة يشبه بداية كائن مدار (يستند إلى جدول أسلوب صالح) صالح و الكائن بعد العنوان الوسيطة. |
MinidumpMode [0] [1] |
عند استخدام تفريغ مصغّر فإنه يتم منع تشغيل الأوامر الغير آمنة. تمرير0 ليعطل هذه الميزة أو 1 لتمكين هذه الميزة. بشكل افتراضي، فإن القيمة MinidumpMode يتم تعيينها إلى 0. التفريغات المصغّرة التي تم إنشاؤها باستخدام الأمر .dump /m أو الأمر .dump الذي يحتوي على البيانات المحددة الخاصة بـ CLR و يسمح لك بتشغيل مجموعة فرعية فقط من الأوامر SOS بشكل صحيح, و قد تفشل بعض الأوامر مع أخطاء غير متوقعة بسبب عدم تعيين المناطق المحددة من الذاكرة أو أنه تم تعيينها جزئياً فقط, فهذا الخيار يحميك من تشغيل أوامر غير آمنة ضد تفريغات مصغّرة. |
Name2EE <اسم وحدة نمطية> <نوع أو اسم الأسلوب> -أو- Name2EE <اسم وحدة نمطية>!<نوع أو اسم الأسلوب> |
يعرض البنية MethodTable و البنية EEClass للنوع أو الأسلوب المحدد في الوحدة النمطية المحددة. يجب أن يتم تحميل الوحدة النمطية المحددة في عملية. إلى الحصول على اسم النوع المناسب، واستعرض وصولاً وحدة نمطية باستخدام Ildasm.exe (المفكك MSIL). يمكنك أيضاً تمرير * كمعلمة اسم الوحدة النمطية للبحث عن كافة الوحدات النمطية المدارة التي تم تحميلها. المعلمة اسم وحدة نمطية يمكن أيضاً أن تكون اسماً لمصحح الأخطاء لوحدة نمطية مثل mscorlib أو image00400000. إن هذا الأمر يقوم بدعم بناء جملة مصحح النوافذ لـ <module>!<type>, و يجب أن يكون النوع مؤهلاً بشكل كامل. |
ObjSize<كائن العنوان>] |-aggregate] [-stat] |
يعرض الحجم للكائن المحدد, في حالة عدم تحديد أية معلمات، ObjSizeيعرض الأمر الحجم الجميع الكائنات الموجودة تشغيل عمليات جزئية التي تمت إدارتها، يعرض الجميع التعاملات collecإلىr البيانات المهملة في العملية، ويشير الحجم أية كائنات إلى tals إلى بهذه المعالجات. و يتضمن الأمر ObjSize حجم كافة الكائنات التابعة بالإضافة إلى الأصل. -aggregateيمكن استخدام خيار بالاقتران مع -statوسيطة للحصول على عرض مفصل للأنواع التي تم وضعها باستمرار. باستخدام !dumpheap -statو !objsize -aggregate -stat، يمكنك تحديد الكائنات التي تم وضعها لم يعد وتشخيص مشاكل ذاكرة المختلفة. |
PrintException -nested] [ -lines] [< العنوان الكائن استثناء >] -أو- PE [-nested] [<عنوان كائن الاستثناء>] |
يقوم بعرض و تنسيق حقول أي كائن مشتق من الفئة Exception عند العنوان المحدد, و إذا لم تقم بتحديد عنوان, فإن الأمر PrintException يقوم بعرض الاستثناء الأخير الذي تم طرحه على مؤشر الترابط الحالي.
يمكنك استخدام هذا الأمر لتنسيق وعرض الحقل _stackTrace الذي يعتبر صفيف ثنائي. |
ProcInfo [-env] [-time] [-mem] |
عرض متغيرات البيئة لـلعملية و الوقت kernel CPU و إحصائيات استخدام الذاكرة. |
RCWCleanupList <عنوان RCWCleanupList> |
يعرض القائمة لـ runtime callable wrappers عند العنوان المحدد التي تنتظر تنظيف. |
SaveModule <العنوان الأساسي> <اسم الملف> |
يكتب نسخة ما حيث يتم تحميلها في ذاكرة عند العنوان المحدد إلى الملف المحدد. |
SOSFlush |
يمسح ذاكرة تخزين مؤقت داخلية SOS. |
StopOnException [-derived] [-create | -create2] < استثناء> <رقم pseudo-register> |
عند طرح الاستثناء المحدد فإن ذلك يؤدي لإيقاف المصحح, لكن إلى متابعة تشغيله عندما يتم طرح الاستثناءات الأخرى. الخيار -derived يمسك بالاستثناء المحدد و كل استثناء مستمد من الاستثناء المحدد. |
SyncBlk [-all | <syncblk number>] |
يعرض البنيات المحددة SyncBlock بنية أو كلها SyncBlock, و إذا لم تقم بتمرير أية وسائط, فإن الأمر SyncBlk يعرض البنية SyncBlock المقابلة للكائنات التي يمتلكها مؤشر ترابط. بنية SyncBlock تعتبر بمثابة حاوية لمعلومات إضافية التي لا تحتاج لإنشائها لكل كائن, و يمكنها تقييد بيانات توافق COM و شفرات التجزئة و معلومات تأمين عمليات مؤشر ترابط آمن. |
ThreadPool |
يعرض معلومات حول تجمع عمليات جزئية التي تمت إدارتها، بما في ذلك رقم طلبات العمل في قائمة الانتظار، رقم من عمليات جزئية لمنفذ الإكمال، و رقم من أجهزة ضبط الوقت. |
Token2EE<اسم وحدة نمطية> <الرمز المميز> |
يحول بيانات التعريف المحددة لرمز مميز في الوحدة النمطية المحددة إلى بنية MethodTable أو بنية MethodDesc. يمكنك تمرير * لمعلمة اسم الوحدة النمطية للعثور على ما يترجم لهذا الرمز المميز في كل وحدة نمطية مدارة تم تحميلها, و يمكنك أيضاً تمرير اسم مصحح الأخطاء لوحدة نمطية, مثل mscorlib أو image00400000. |
Threads [-live] [-special] |
يعرض كافة مؤشرات الترابط المدارة في العملية. الأمر Threads يعرض معرّف اختصار مصحح الأخطاء و وقت تشغيل اللغة العامة و نظام التشغيل لمعرّف مؤشر الترابط. بالإضافة إلى ذلك، فإن الأمر Threads يعرض عمود مجال يشير إلى مجال التطبيق الذي يقوم بتنفيذ مؤشر ترابط و عمود APT الذي يعرض الوضع الحيز لـ COM و عمود استثناء يعرض الاستثناء الأخير الذي تم طرحه في مؤشر الترابط.
|
ThreadState <حقل القيمة الحالة> |
عرض الولاية مؤشر ترابط. valueمعلمة هو القيمة Stateالحقل في Threadsتقرير الإخراج. مثال:
|
TraverseHeap [-xml] <اسم ملف> |
قم بكتابة المعلومات كومة ذاكرة مؤقتة إلى المحدد ملف بتنسيق فهمها proملفr CLR. و يؤدي الخيار -xml إلى الأمر TraverseHeap لتنسيق الملف كـ XML. يمكنك تنزيل محلل ملفات التعريف CLR من مركز التنزيل لـ Microsoft. |
U [-gcinfo] [-ehinfo] [-n] <MethodDesc address> | <Code address> |
عرض توضيحي التفكيك أسلوب مدارة المحدد بواسطة MethodDescمؤشر بنية للأسلوب أو بعنوان التعليمات برمجية داخل نص الأسلوب. و الأمر U يعرض الأسلوب بالكامل من البداية إلى النهاية مع التعليقات التوضيحية التي تقوم بتحويل الرموز المميزة لبيانات التعريف إلى أسماء.
|
VerifyHeap |
يتحقق من كومة الذاكرة المؤقتة لحاوي المهملات لإشارات التلف و يعرض أي من الأخطاء التي تم العثور عليها. يمكن أن يحدث تلف لكومة ذاكرة تخزين البيانات بسبب استدعاء النظام الأساسي للمكالمات التي يتم بناؤها بشكل غير صحيح. |
VerifyObj <عنوان كائن> |
التحقق من الكائن الذي هو تمرير كوسيطة للعلامات للتلف. |
VMMap |
يجتاز مساحة العنوان الظاهرية و يعرض نوع الحماية التي يتم تطبيقها على كل منطقة. |
VMStat |
يوفر طريقة عرض تلخيص لمساحة العنوان الظاهرية بأمر من كل نوع من الحماية المطبقة عل تلك الذاكرة (النسخة الحرة, المحجوزة, الإلزامية, الخاصة, التعيين, الصورة), و يقوم العمود الكلي بعرض نتيجة ضرب العمود AVERAGE بالعمود COUNT BLK. |
ملاحظات
استخدم ملحق تصحيح الأخطاء SOS عن طريق تحميله إلى المصحح WinDbg.exe و الذي يتوفر أيضاً في الـ WDK و موقع ويب أدوات المطور أو في Visual Studio. يمكنك تنفيذ الأوامر داخل WinDgb.exe أو داخل النافذة فوري من Visual Studio.
يتيح ملحق تصحيح SOS تقوم بعرض معلومات حول تعليمات برمجية التي هو التشغيل داخل وقت تشغيل اللغة العامة. على سبيل المثال، يمكنك استخدام ملحق تصحيح الأخطاء SOS لعرض معلومات حول كومة الذاكرة المؤقتة المدارة و للبحث عن تلف كومة ذاكرة تخزين البيانات و عرض أنواع البيانات الداخلية المستخدمة بواسطة وقت التشغيل ثم عرض معلومات حول كافة التعليمات البرمجية المدارة التي تم تشغيلها داخل وقت التشغيل.
تحميل ملحق تصحيح الأخطاء SOS
لتحميل ملحق التصحيح SOS في المصحح WinDbg.exe, قم بتشغيل الأمر التالي في الأداة:
.loadby sos mscorwks
لتحميل ملحق التصحيح SOS في Visual Studio, قم بتشغيل الأمر التالي في النافذة فوري أثناء التصحيح:
.load SOS.dll
إذا كان الأمر ناجحاً، فهو يعيد الرسالة التالية في النافذة فوري:
extension C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos.dll loaded
يجب عليك تمكين التصحيح الغير مدار في إعدادات المشروع من الحل الخاص بك قبل أن تتمكن من تحميل ملحق التصحيح SOS. بالنسبة لبعض اللغات، فإن التصحيح الغير مدار يتم تعطيله بشكل افتراضي, و لا تسمح بعض الأنظمة الأساسية بتصحيح التعليمات البرمجية المدارة و غير المدارة في نفس الوقت.
ملاحظة |
---|
لعرض النافذة فوري في Visual Studio, على القائمة تصحيح، قم بالإشارة إلى نوافذ ثم انقر فوق الخيار فوري.يمكنك أيضاً فتح النافذة فوري في Visual Studio بالضغط على الزر 'Ctrl' + الزر 'Alt' + الزر 'I' |
يقوم WinDbg.exe و Visual Studio باستخدام إصدار من SOS.dll الذي يتوافق مع الإصدار من Mscorwks.dll قيد الاستخدام حالياً, و في الإصدارات 1.1 و 2.0 من .NET Framework, فإن SOS.dll مثبت في نفس الدليل كـ Mscorwks.dll. بشكل افتراضي, يجب عليك استخدام الإصدار SOS.dll الذي يتطابق مع الإصدار الحالي من Mscorwks.dll.
لاستخدام ملف النسخة الاحتياطية تم إنشاؤها تشغيل كمبيوتر آخر، تأكد من أن الملف Mscorwks.dll ذلك came مع ذلك التثبيت هو في مسار الرمز الخاص بك، وتحميل الإصدار المناسب من SOS.dll.
اكتب الأمر التالي في مصحح الأخطاء Windows لتحميل إصدار محدد من SOS.dll :
.load <full path to sos.dll>
أمثلة
يعرض الأمر التالي المحتويات لصفيف في العنوان 00ad28d0. إن العرض يبدأ من العنصر الثاني و يستمر للعناصر الخمسة.
!dumparray -start 2 -length 5 -detail 00ad28d0
يعرض الأمر التالي المحتويات لتجميع في العنوان 1ca248.
!dumpassembly 1ca248
يعرض الأمر التالي معلومات حول كومة الذاكرة المؤقتة لحاوي المهملات.
!dumpheap
يكتب الأمر التالي محتويات السجل الضغط في ذاكرة إلى ملف (افتراضي) يسمى StressLog.txt في الدليل الحالي.
!DumpLog
يقوم الأمر التالي بعرض البنية MethodDesc على العنوان 902f40.
!dumpmd 902f40
يقوم الأمر التالي بعرض معلومات حول وحدة نمطية في العنوان 1caa50.
!dumpmodule 1caa50
يقوم الأمر التالي بعرض معلومات حول كائن في العنوان a79d40.
!DumpObj a79d40
يعرض الأمر التالي حقول فئة القيمة عنوان 00a79d9cاستخدام أسلوب الجدول عند العنوان 0090320c.
!DumpVC 0090320c 00a79d9c
يعرض الأمر التالي ذاكرة العملية المستخدمة من قبل حاوي المهملات.
!eeheap -gc
يعرض الأمر التالي كافة الكائنات المجدولة للانتهاء
!finalizequeue
يقوم الأمر التالي بتحديد مجال التطبيق لكائن في العنوان 00a79d98.
!findappdomain 00a79d98
يقوم الأمر التالي بعرض كافة مؤشرات حاوي المهملات في العملية الحالية.
!gcinfo 5b68dbb8
يعرض الأمر التالي البنيات MethodTable و EEClass للحصول على الأسلوب Main في الفئة MainClass في الوحدة النمطية unittest.exe.
!name2ee unittest.exe MainClass.Main
يعرض الأمر التالي معلومات حول الرمز المميز لبيانات التعريف في العنوان 02000003 في الوحدة النمطية unittest.exe.
!token2ee unittest.exe 02000003