سؤال

تلقت فئة الاستثناء في دلفي 2009 عددًا من الميزات الجديدة.يرتبط عدد منها بالحصول على تتبع المكدس:

  • ملكية تتبع المكدس: خيط يقرأ GetStackTrace;
  • ملكية معلومات المكدس:المؤشر يقرأ FStackInfo;
  • فئة فار GetExceptionStackInfoProc: وظيفة (ف:سجل الاستثناء):المؤشر؛
  • فئة فار GetStackInfoStringProc: وظيفة (معلومات:المؤشر): خيط;
  • فئة فار كلينوبستاكإنفوبروك: إجراء (معلومات:المؤشر)؛

هل استخدم أي شخص هذه للحصول على تتبع المكدس حتى الآن؟نعم، أعلم أن هناك طرقًا أخرى للحصول على تتبع المكدس، ولكن إذا كان مدعومًا أصلاً في فئة الاستثناء، فإنني أفضل الاستفادة من ذلك.

تحديث: هناك مصلحة مشاركة مدونة حول هذا.يغطيها بعمق كبير.

هل كانت مفيدة؟

المحلول

بالنسبة لي، يبدو هذا بمثابة إطار عمل يمكنك من خلاله توصيل تتبع المكدس الخاص بك.أعتقد أنه يمكن استخدام هذا داخليًا في IDE مع JCLDebug.ربما يكون المقصود منه أن يتمكن المستخدمون من توفير madExcept أو تطبيق آخر.

نصائح أخرى

لا، لم أستخدمها بعد (حاليًا أستخدم madExcept لذلك، وقمت أيضًا ببعض التجارب مع JclDebug) - لكن شكرًا على النصيحة!

توندريج هو الصحيح.الميزات الجديدة المضافة إلى فئة الاستثناء مخصصة لجهات خارجية لربط كود تتبع المكدس الخاص بهم في RTL.لا ينتج التطبيق الافتراضي لفئة الاستثناء آثار المكدس الخاصة به.

سيكون من الأفضل لك أن تنظر إلى MadExcept.فهو لا يوفر فقط معالجة ممتازة لأية استثناءات لم تتم معالجتها (التقاط الشاشة، والبريد الإلكتروني، وما إلى ذلك) ولكنه يحتوي على مجموعة رائعة من الإجراءات الروتينية القابلة للاستدعاء لتزويدك بتتبع المكدس الذي يمكنك استخدامه في أي مكان تقريبًا.بري

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top