debug function
컨텐츠 정보
- 16,272 조회
- 7 추천
- 목록
본문
- debug.inc - 수정 -
function MyErrorHandler($errno, $errstr, $errfile, $errline)
{
$errname = array(E_ERROR=>'ERROR', E_WARNING=>'WARNING', E_NOTICE=>'NOTICE');
switch($errno) {
case E_ERROR:
case E_WARNING:
case E_NOTICE:
echo "<xmp>\\n".$errname[$errno].' : '.$errstr.' : '.$errfile.' : '.$errline."\\n";
print_r(debug_backtrace());
exit("\\n</xmp>");
}
}
if(isset($_DEBUG)) {
set_error_handler('MyErrorHandler');
}
- 사용예 -
맨 위에
$_DEBUG = true;
include_once 'debug.inc';
- 결과 예 -
Array
(
[0] => Array
(
[file] => ~~~mysql.inc
[line] => 143
[function] => MyErrorHandler
)
[1] => Array
(
[file] => ~~~mysql.inc
[line] => 143
[function] => mysql_query
)
)
이런식으로 인클루드 된 모든파일이 배열로 출력되고 파일마다 몇행에서 멈췄는지 보입니다.
현재는 notice 만 나와도 멈출거라 생각합니다.
리퍼런스에서 set_error_handler 찾으면 쉽게 수정할 수 있습니다.
-----------------------------------------------------------------
알맹이는 이걸로 고쳐야 겠네요.
에러 아닌것들이 걸리는듯.
switch($errno) {
case E_USER_ERROR:
case E_USER_WARNING:
case E_USER_NOTICE:
echo "<xmp>\\n".$errno.' : '.$errstr.' : '.$errfile.' : '.$errline."\\n";
print_r(debug_backtrace());
exit("\\n</xmp>");
}
-----------------------------------------------------------------
E_USER 시리즈는, user_error(); 함수를 콜 할때 필요할것 같습니다.
E_NOTICE 부분이 조금 민감한데.. 프로그램을 주의깊게 코딩하지 않았을 경우 자주 뜨죠.
-----------------------------------------------------------------
http://kr.php.net/manual/en/function.error-reporting.php
아차차...
E_USER시리즈가 그얘기였군요.
case E_ERROR:
case E_WARNING:
case E_NOTICE:
09/14 20:26:15
PHP 4.3 부터 가능하죠
function MyErrorHandler($errno, $errstr, $errfile, $errline)
{
$errname = array(E_ERROR=>'ERROR', E_WARNING=>'WARNING', E_NOTICE=>'NOTICE');
switch($errno) {
case E_ERROR:
case E_WARNING:
case E_NOTICE:
echo "<xmp>\\n".$errname[$errno].' : '.$errstr.' : '.$errfile.' : '.$errline."\\n";
print_r(debug_backtrace());
exit("\\n</xmp>");
}
}
if(isset($_DEBUG)) {
set_error_handler('MyErrorHandler');
}
- 사용예 -
맨 위에
$_DEBUG = true;
include_once 'debug.inc';
- 결과 예 -
Array
(
[0] => Array
(
[file] => ~~~mysql.inc
[line] => 143
[function] => MyErrorHandler
)
[1] => Array
(
[file] => ~~~mysql.inc
[line] => 143
[function] => mysql_query
)
)
이런식으로 인클루드 된 모든파일이 배열로 출력되고 파일마다 몇행에서 멈췄는지 보입니다.
현재는 notice 만 나와도 멈출거라 생각합니다.
리퍼런스에서 set_error_handler 찾으면 쉽게 수정할 수 있습니다.
-----------------------------------------------------------------
알맹이는 이걸로 고쳐야 겠네요.
에러 아닌것들이 걸리는듯.
switch($errno) {
case E_USER_ERROR:
case E_USER_WARNING:
case E_USER_NOTICE:
echo "<xmp>\\n".$errno.' : '.$errstr.' : '.$errfile.' : '.$errline."\\n";
print_r(debug_backtrace());
exit("\\n</xmp>");
}
-----------------------------------------------------------------
E_USER 시리즈는, user_error(); 함수를 콜 할때 필요할것 같습니다.
E_NOTICE 부분이 조금 민감한데.. 프로그램을 주의깊게 코딩하지 않았을 경우 자주 뜨죠.
-----------------------------------------------------------------
http://kr.php.net/manual/en/function.error-reporting.php
아차차...
E_USER시리즈가 그얘기였군요.
case E_ERROR:
case E_WARNING:
case E_NOTICE:
09/14 20:26:15
PHP 4.3 부터 가능하죠
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.