لاستخدام بيانات ملف تعريف XDEBUG2 في تصحيح الأخطاء PHP بواسطة Ubuntu

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

سؤال

ويستند سؤالي على هذه المقالة.

كيف يمكنك إجراء بيانات التنميط حول رمز PHP بواسطة XDubug2 ثم ضعه على تطبيق مثل kcachegrind؟

لقد استخدمت بنجاح XDebug في Ubuntu بلدي، لأنه يسلط الضوء على رسائل الخطأ الخاصة بي في المتصفح. ومع ذلك، لم أجد أي أداة محطة مثل xdebug.

أود الحصول على عرض مرئي لرمز PHP الخاص بي مثل هذا

alt text

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

المحلول

أضف هذا الخط إلى PHP.INI الخاص بك

xdebug.profiler_enable = 1.

ثم، إذا حدثت تشغيل PHP من خلال خادم الويب، فأنت بحاجة إلى إعادة تشغيل WebServer، وإلا فلن يتم التقاط تغيير CORT.

إذا كنت تقوم بتشغيل PHP من خلال CLI، فمن الضروري بالطبع غير ضروري.

الآن، عند تشغيل البرنامج النصي PHP الخاص بك، يتم إنشاء ملف CacheRind.out.pid في الدليل المحدد بواسطة إعداد XDebug.profiler_Output_Dir Php.ini. إنه / TMP افتراضيا.

هذه الملفات هي kcachegrind واحد قادر على التحميل.

هناك وسيلة أخرى لاستدعاء جيل الملف الشخصي هذا، يمكنك أن تقرأ عنها في http://www.xdebug.org/docs/all_settings#profiler_enable.

نصائح أخرى

ألق نظرة على WebGrind (http://code.google.com/p/webgrind/)

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

الحلول المتاحة

  1. تثبيت WebGrind (http://code.google.com/p/webgrind/)
  2. تشغيل XDEBUG ونسخ الملفات Cachegrind.out على جهاز حيث لديك عارض Cachegrind.

بالنسبة لي كان الجواب هو SCP ملفات Cachegrind على جهاز Windows المحلي الخاص بي، واستخدام Wincachegrind للنظر إليهم. يمكنك SCP من قبل مربع Linux الخاص بك وتشغيل kcachegrind على الملفات. الجانب السلبي لهذا، هو أنه قد لا يكون لديك نفس هيكل الملفات، لذلك لن تكون قادرا على عرض SourCecode. إذا كان لديك المصدر أيضا على جهازك المحلي، أو يمكنك الحصول عليه هناك، يمكنك إصلاح هذا أيضا. افتح ملفات Cachegrind في VIM (أو محرر آخر) وقم بعمل بحث عالمي واستبداله على المسارات لتغييرها إلى المسار المصدر الصحيح على جهازك المحلي.

آمل أن يكون هذا ما كنت تبحث عنه.

تحرير لمعالجة التعليق:

إذا كنت تعمل للحصول على ملف Callgrind هو مختلف إلى حد ما. لهذا، يجب أن تكون قيد التشغيل في Linux (الذي أعتقد أنك) ولدي برامج Callgrind و Virgrind المتاحة. آخر شيء يفترض هنا هو أنك تقوم بتشغيل PHP كديم Apache وليس بطريقة أخرى. استخدم أداة CallGrind مقابل بدء تشغيل Apache ثم قم بتشغيل الطلب في المتصفح. سيعطيك هذا معلومات مفصلة ليس فقط على شجرة مكالمة PHP، ولكن أيضا على العديد من الأشياء في Apache التي قد تسبب مشكلة.

هنا مثال على

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/httpd -X

سيبدأ -x apache في وضع التصحيح مع موضوع واحد فقط. من هنا فتح متصفح الويب واضغط على البرنامج النصي PHP الذي تريده. ثم العودة وإغلاق أباتشي. يجب أن ينهي هذا أيضا تحليل الدعوة.

إذا لم تكن بحاجة إلى Apache أو مستعرض ويب، فيمكنك تجربة تشغيل CallGrind مع أمر PHP فقط

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/php my_php_script.php

يجب أن يمنحك نفس النتائج ولكن دون كل الاشياء Apache.

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