2011-11-10 24 views
31

Tôi đã bật tính năng định cấu hình xDebug trong cài đặt XAMPP của mình và nó hoạt động tốt.Tôi có thể nói theo cách thủ công trên hồ sơ xdebug để bắt đầu lập hồ sơ ở địa điểm cụ thể không?

Bây giờ tôi muốn hỏi xem có cách nào để nói từ bên trong mã nguồn của tôi khi bắt đầu lược tả bằng xDebug hay không.

Cụ thể hơn, tôi muốn tạo một plugin WordPress, và tôi muốn nói, bắt đầu lược tả từ điểm bắt đầu của plugin và dừng lược tả ở điểm cuối của plugin.

Điều đó có khả thi không?

Lưu ý: Ở trên chỉ là một ví dụ. Nó có thể là một plugin CakePHP hoặc một Lớp PHP mới mà tôi có thể cần phải cấu hình

Trả lời

46

Chỉnh sửa: Mỗi How to Turn On/Off Xdebug Profiling at Runtime? bạn không thể bật/tắt khi chạy (ví dụ: cho mỗi cuộc gọi hàm).

Bạn có thể chọn lọc profiler theo yêu cầu, thường tốt hơn. Để đạt được hành vi này thiết lập những cài đặt:

xdebug.profiler_enable_trigger=1 
xdebug.profiler_enable=0 

Lưu ý rằng chúng tôi vô hiệu hóa hồ sơ và chỉ cho phép kích hoạt. Từ trình duyệt của bạn vượt qua XDEBUG_PROFILE = 1

http://example.com/file.php?XDEBUG_PROFILE=1 

Bạn cũng có thể vượt qua tham số này trong POST hoặc COOKIE. Để biết thêm thông kiểm tra

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
+2

Tôi đã bỏ qua câu trả lời này vì nó không thực sự trả lời câu hỏi. Tôi đọc câu hỏi như muốn tự động bật và tắt profiler trong php, cho phép mã cụ thể được lược tả hơn là toàn bộ yêu cầu. –

+5

Được bỏ phiếu để đề cập rõ ràng về việc không thể bật/tắt khi chạy - và cũng bởi vì câu trả lời này thực sự trả lời tiêu đề câu hỏi, đó là những gì tôi đã tìm kiếm. – xiankai

+1

Được bình chọn, vì giống như người trước tôi đã nói, câu trả lời này trả lời câu hỏi. Cảm ơn thông tin và câu trả lời đúng. –

4

Như đã trình bày bởi Laith, bạn không thể chọn khi bạn muốn xDebug để bắt đầu định hình và khi bạn muốn anh ta dừng lại. Tuy nhiên, một tính năng xDebug khác cung cấp loại tính linh hoạt này: dấu vết.

Việc định hình và truy tìm không chính xác giống nhau nhưng nếu bạn kết thúc ở đây, có thể dấu vết có thể phù hợp với nhu cầu của bạn.

Để bắt đầu truy tìm, bạn phải sử dụng chức năng này: xdebug_start_trace()

Để ngăn chặn truy tìm, bạn phải sử dụng chức năng này: xdebug_stop_trace()

Có khá nhiều các thiết lập, bạn có thể sử dụng để thay đổi hành vi của dấu vết:

http://xdebug.org/docs/execution_trace

Các vấn đề liên quan