Xdebug로 플러그인을 디버깅하는 방법은 무엇입니까?


12

PHP 5.3.0 (XAMPP)을 기반으로 로컬 환경에서 NetBeans 6.9.1 및 Xdebug를 매우 쉽게 설치하고 설정할 수있었습니다.

내 문제는 이제 다음과 같습니다. Wordpress의 index.php 또는 다른 Wordpress 핵심 PHP 파일에 중단 점을두면 NetBeans가 원하는 위치에서 올바르게 중지됩니다. 대신 플러그인 파일에 중단 점을두면 코드 실행 NetBeans가 트리거되지 않습니다.

어떻게 해결할 수 있는지 알고 있습니까?

업데이트 : 디버깅하려고하는 것에 대한 추가 정보

플러그인은 Vanilla Forums 이며 다음과 같은 파일 구조를 갖습니다.

- plugins
  - vanilla-forums
    + assets
    + nbproject
    + templates
      admin.php
      embed.php
      functions.php
      hooks.php
      plugin.php
      sso.php
      widgets.php

vf_validate_options정의 된 이름의 함수 내에 중단 점을 설정 했습니다 functions.php. 이 함수가 실행되었다고 확신하지만 NetBeans가 중단되지 않습니다.


throw new Exception('die');중단 점 행 뒤에 명령문 을 넣으면 중지됩니까 (이로 인해 요청이 종료 / 종료된다는 의미로)?
hakre 2019

@hakre 네, 예외가 발생합니다 (브레이크 포인트가 설정된 코드가 실행된다고 확신합니다)
Drake

1
@Drake :이 코드는 메인 페이지 또는 Ajax 호출에서 실행됩니까? Xdebug 디버거는 일부 GET 또는 POST 변수 로 활성화해야 하고 쿠키를 설정 해야 한다고 생각 합니다 . 아약스 요청에 대해 쿠키를 활성화하지 않았습니까?
Jan Fabry

1
나는 똑같은 문제가 있는데 여전히 픽스를 찾을 수 없습니다! 나는 nusphere phped를 사용하고 있지만 결과없이 Eclipse도 시도했습니다! 중단 점에서 xdebug가 중지하는 유일한 파일은 wordpress "core"파일입니다. 테마의 PHP 파일은 디버깅 할 수 없습니다! 당신이 해결책을 찾으면 알려주십시오, 나는 대답없이 wordpress 공식 포럼에 글을
올렸습니다

1
Jan Fabry가 솔루션에 있다고 생각합니다. 모든 요청에 ​​쿼리 매개 변수를 추가하는 Firefox 플러그인 EasyXdebug를 선호 XDEBUG_SESSION_START합니다.
Jeff Stieler 2016 년

답변:




0

안녕 @ 드레이크 :

어리석은 질문입니다.하지만 플러그인 을 "활성화" 했습니까? 플러그인이 디버깅되지 않을 때 내가 트립되는 곳입니다.


예, 플러그인이 활성화되었습니다. 디버깅하려고하는 것은 관리자 영역에서 플러그인 자체로 만든 메뉴에 의한 함수 트리거입니다.
Drake

@Drake- "기능 트리거" 란 무엇입니까 ? 질문에 대한 업데이트로 코드를 게시 할 수 있습니까?
MikeSchinkel

0

플러그인 파일을 디버깅 할 방법이 없습니다. 디버그 워드 프레스에서 찾은 유일한 방법은 불행히도 프리웨어가 아닌 nusphere phped를 사용하는 것입니다. 그것은 유일하게 그렇게 할 수있는 것 같습니다. 왜 그런지 모르겠지만 netbeans 및 일식으로 디버그하는 방법을 알아내는 데 오랜 시간을 소비합니다 ... 결과가 없습니다!


-3

음, 워드 프레스 자체가 제공하기 때문에 WP_DEBUG, 그리고 wp_die($msg)... 왜 Xdebug는과 디버깅해야 whould? 프레임 워크를 사용하여 플러그인을 빌드하지 않는 한?


... 프로파일 링 및 시작에 대한 코드를 단계별로 - WP_DEBUG 및 출력을하지 않는 것이 Xdebug는 제안 많은 도구
boisvert

당시 Xdebug에 대한 지식이 거의 없었습니다.
adrian7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.