2014-05-23 2 views
0

소개zf2에서 호출 스택을 감시하는`debug_backtrace()`함수가 있습니까? 아니면 zf2에서 호출 추적을 디버깅 할 수있는 방법이 있습니까?

zf2에서 이상한 오류가 발생합니다. 이유를 모르지만 라우팅 오류가 발생합니다. 나는 어떤 메시지도 얻지 못하지만, 필요한 컨트롤러는로드되지 않지만 다른 컨트롤러는로드됩니다. 모두 괜찮아 보이므로이 문제를 해결하는 데 도움을주기 위해 여기에 물어 보는 것은 좋지 않으므로 직접 디버깅하려고합니다.


무엇을 시도 했습니까?

나는이 같은 /public/index.php 파일에 debug_backtrace() 기능을 시도 :

// Setup autoloading 
require 'init_autoloader.php'; 

// Run the application! 
Zend\Mvc\Application::init(require 'config/application.config.php')->run(); 

var_dump(debug_backtrace()); 

그것은 아무것도 표시되지 않습니다. 기능은 내가 시도 작동하는지

그냥 확인 :

function bob() { 
    var_dump(debug_backtrace()); 
} 

bob(); 

을 그리고 이것은,이 날을 보였다 등 이른바 기능, 그 기능이 올바르게 실행되고 전달 된 것을 PARAMS 저를 보여 주었다하지만이 기능은 아니다 내 경우에 사용 했어. 질문


는 응용 프로그램에서 실행 된 어떤 기능을 얻을 수있는 어떤 방법이 있습니까?

답변

1

debug_backtrace()이 약간 오해한다고 생각합니다. 백 트레이스가있는 코드에서 해당 위치로 연결된 함수 호출을 나열합니다. 따라서 귀하의 bob() 예에서는 해당 기능이 표시됩니다 (bob()이 호출 됨). 그러나 에 debug_backtrace()을 호출하면 모든 기능에서 실행되지 않으므로 출력이 나오지 않습니다.

+0

감사합니다. 그러나 당신의 질문이 그 질문에 대한 답이라고 확신하지 못합니다. 문제는 '앱에서 실행 된 기능을 얻을 수있는 방법이 있습니까?'였습니다. 귀하의 제안은 코멘트 일 수도 있지만 대답은 아닙니다. 어쨌든 고맙습니다 - 당신은'debug_backtrace()'가 어떻게 작동하는지 명확히하셨습니다. –

+0

공정한 포인트. Xdebug로 확실히 할 수는 있지만, PHP 함수가 있다면 그 목록을 줄 수 있을지 확신 할 수 없습니다. 그러나이 경우에는 문제를 디버그하는 데 도움이된다고 생각하지 않습니다. 말 그대로 수천 개의 함수 호출이 ZF에서 발생합니다. 수정하려는 라우팅 오류에 대한 세부 정보를 게시하려면 (별도의 질문으로)이를 대신 지원할 수 있습니다. –

+0

글쎄, 내가 문제를 해결 ... 나는이 질문을 삭제하는 것에 대해 생각하고 있지만 확실하지 않다. 아직 열려 있습니다. 예를 들어, 나 또는 다른 누군가가 해결 방법을 모르는 오류를 얻게되며이 오류의 원인을 모릅니다. 어떤 경로가 선택되었는지, 무엇이 무엇인지 디버깅하는 방법을 알고 있다는 것은 좋은 것입니다. 내 경우, 내가 선택한 경로와 그 이유를 알았 더라면 내 문제를 훨씬 빨리 해결했을 것입니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. 내 말을 이해 하셨어요? 어쨌든 투표가 끝났습니다. 기능이 어떻게 작동하는지 명확히했기 때문입니다. –

0

다른 스택을 설치하는 것이 얼마나 합리적인 지 잘 모르겠지만 ZendServer에는 코드 추적/프로파일 링이 내장되어있어 찾고있는 것과 정확히 일치합니다.

관련 문제