التأمل ثغة؟ عندما يتم استدعاء وظيفة وعندما خروجها

StackOverflow https://stackoverflow.com/questions/231649

  •  04-07-2019
  •  | 
  •  

سؤال

ومع ثغة المشتركة وأنا على افتراض خصائص التأمل. كيف يمكنني إضافة رمز إلى رمز ثغة المشتركة التي من شأنها أن تخبرني عندما يتم استدعاء وظيفة وعند انتهاء تنفيذ. وأود أن أغتنم أي رمز ثغة وهذا التعديل بشكل خاص إلى رمز. الرقم الأول مع تحليل AST ثغة، وهذا ينبغي أن يكون ممكنا.

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

المحلول

ويمكنك استخدام (trace function) للحصول على آلية بسيطة. عن شيء أكثر انخراطا، وهنا هو مناقشة جيدة من <لأ href = "http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/75ddcdcc160508b0؟pli=1" يختلط = "نوفولو noreferrer" > comp.lang.lisp .

[CL_USER]>
(defun fac (n)
    "Naïve factorial implementation"
    (if (< 1 n)
        (* n (fac (- n 1)))
        1))
FAC
[CL_USER]> (trace fac)
;; Tracing function FAC.
(FAC)
[CL_USER]> (fac 5)
1. Trace: (FAC '5)
2. Trace: (FAC '4)
3. Trace: (FAC '3)
4. Trace: (FAC '2)
5. Trace: (FAC '1)
5. Trace: FAC ==> 1
4. Trace: FAC ==> 2
3. Trace: FAC ==> 6
2. Trace: FAC ==> 24
1. Trace: FAC ==> 120
120
[CL_USER]> 

نصائح أخرى

إذا CLOS هو خيار، فقد <وأ href = "HTTP: // www.ravenbrook.com/doc/2003/07/15/clos-fundamentals/ "يختلط =" نوفولو noreferrer "> قبل، وبعد، وحول طرق التي يتم تشغيلها من قبل، بعد وحول أساليب أخرى.

وثغة الشائعة لديه وظيفة TRACE أن تقارير وظيفة، والحجج وما ينتج عنها قيمة كل مكالمة المحدد. هنا هي الصفحة وثيقة لعرض بنك الصلب، ولكن عليك أن تجد شيئا من هذا القبيل في معظم تطبيقات:

http://www.sbcl.org/manual/Function-Tracing.html

ويشمل النظام أيضا التعريف:

http://www.sbcl.org/manual/Deterministic-Profiler.html

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