똥싼너구리

PHP 에서의 디버그

· 17년 전 · 1874
원본: http://bequietzero.com/bbs/board.php?bo_table=PHP&wr_id=22
(작성자의 홈페이지 이며, 업데이트는 작성자의 홈페이지에서 이루어 집니다.)

 웹언어를 디버그 하는것은 상당히 까다롭다. 내 컴퓨터에서 실행되기 어렵고, 서버라는 환경하에서 실행이 되기 때문이다. 여기서 디버그 할때에 좀더 편리하게 사용가능 한 방법을 소개 하도록 한다.

DEBUG 함수 제작

 사이트 어디서든 접근 가능한 DEBUG 함수를 제작한다.
  1. function DEBUG($file$line$array) {  
  2.     $debug = "\n<!--\n";  
  3.     $debug .= "파일위치:$file\n";  
  4.     $debug .= "현재라인:$line\n";  
  5.     $debug .= print_r($array, true);  
  6.     $debug .= "-->\n";  
  7.     echo $debug;  
  8. }  
function DEBUG($file, $line, $array) { $debug = "\n<!--\n"; $debug .= "파일위치:$file\n"; $debug .= "현재라인:$line\n"; $debug .= print_r($array, true); $debug .= "-->\n"; echo $debug; }
 이 함수는 실행중인 파일정보와 라인정보를 입력받고 디버그 할 변수를 입력 받는다. 입력 받아서 HTML주석으로 디버그 정보를 출력 해준다. 여기서 사용한 print_r
함수는 배열이나 일반 변수를 입력 받아 내용을 모두 출력 해주는 함수다.
 그누보드 에서는 이 함수를 /extend 폴더에 넣었다.

DEBUG 함수 사용

  1. DEBUG(__FILE__,__LINE__,$list);  
DEBUG(__FILE__,__LINE__,$list);
 디버그 하기위해 변수를 출력 해야 할 곳에서 위와 같이 사용한다. __FILE__ 과 __LINE__ 을 이용해 출력한 곳의 정보를 출력한다.


출력 결과

  1. <!--  
  2. 파일위치:/home/hosting_users/bequietzero/www/class/TodoList.class.php  
  3. 현재라인:73  
  4. Array  
  5. (  
  6.     [0] => Array  
  7.         (  
  8.             [wr_id] => 41  
  9.             [wr_num] => -10  
  10.             [wr_reply] =>   
  11.             [wr_parent] => 41  
  12.             [wr_is_comment] => 0  
  13.             [wr_comment] => 0  
  14.             [wr_comment_reply] =>   
  15.             [ca_name] =>   
  16.             [wr_option] =>   
  17.             [wr_subject] => 구글 소스코드에 등록하기  
  18.             [wr_content] => 상세 내용을 입력하세요.  
  19.             [wr_link1] =>   
  20.             [wr_link2] =>   
  21.             [wr_link1_hit] => 0  
  22.             [wr_link2_hit] => 0  
  23.             [wr_trackback] =>   
  24.             [wr_hit] => 1  
  25.             [wr_good] => 0  
  26.             [wr_nogood] => 0  
  27.             [mb_id] => admin  
  28.             [wr_password] => ************  
  29.             [wr_name] => 너굴군  
  30.             [wr_email] => ************  
  31.             [wr_homepage] =>   
  32.             [wr_file] => 0  
  33.             [wr_datetime] => 2008-07-06 11:15:57  
  34.             [wr_last] => 2008-07-06 11:15:57  
  35.             [wr_ip] => ************  
  36.             [wr_1] =>   
  37.             [wr_2] =>   
  38.             [wr_3] =>   
  39.             [wr_4] =>   
  40.             [wr_5] =>   
  41.             [wr_6] =>   
  42.             [wr_7] =>   
  43.             [wr_8] =>   
  44.             [wr_9] =>   
  45.             [wr_10] =>   
  46.         )  
  47.   
  48.     [1] => Array  
  49.         (  
  50.             [wr_id] => 40  
  51.             [wr_num] => -9  
  52.             [wr_reply] =>   
  53.             [wr_parent] => 40  
  54.             [wr_is_comment] => 0  
  55.             [wr_comment] => 0  
<!-- 파일위치:/home/hosting_users/bequietzero/www/class/TodoList.class.php 현재라인:73 Array ( [0] => Array ( [wr_id] => 41 [wr_num] => -10 [wr_reply] => [wr_parent] => 41 [wr_is_comment] => 0 [wr_comment] => 0 [wr_comment_reply] => [ca_name] => [wr_option] => [wr_subject] => 구글 소스코드에 등록하기 [wr_content] => 상세 내용을 입력하세요. [wr_link1] => [wr_link2] => [wr_link1_hit] => 0 [wr_link2_hit] => 0 [wr_trackback] => [wr_hit] => 1 [wr_good] => 0 [wr_nogood] => 0 [mb_id] => admin [wr_password] => ************ [wr_name] => 너굴군 [wr_email] => ************ [wr_homepage] => [wr_file] => 0 [wr_datetime] => 2008-07-06 11:15:57 [wr_last] => 2008-07-06 11:15:57 [wr_ip] => ************ [wr_1] => [wr_2] => [wr_3] => [wr_4] => [wr_5] => [wr_6] => [wr_7] => [wr_8] => [wr_9] => [wr_10] => ) [1] => Array ( [wr_id] => 40 [wr_num] => -9 [wr_reply] => [wr_parent] => 40 [wr_is_comment] => 0 [wr_comment] => 0
 위는 출력결과의 일부이다. 개발할때 위와 같이 변수의 정보를 출력해보고, 개발이 완료되면 위 출력 결과의 정보를 활용해 DEBUG함수를 호출하는 부분을 찾아 지워주거나 DEBUG함수 내부를 주석처리하면 일괄적으로 출력되지 않는다.


 디버그 할수 있는 다른 여러가지 방법도 많지만 이 방법은 간단하면서 효과적인 방법이다. 디버그에 대한 좀더 나은 방법이 있을 경우 다시 소개 하겠다.


[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
17년 전 조회 1,355
17년 전 조회 3,230
17년 전 조회 2,213
17년 전 조회 2,660
17년 전 조회 1,466
17년 전 조회 1,817
17년 전 조회 1,200
17년 전 조회 1,255
17년 전 조회 1,835
17년 전 조회 1,276
17년 전 조회 4,356
17년 전 조회 1,559
17년 전 조회 2,061
17년 전 조회 7,139
17년 전 조회 1,432
17년 전 조회 1,946
17년 전 조회 3,183
17년 전 조회 1,277
17년 전 조회 2,040
17년 전 조회 1,205
17년 전 조회 1,902
17년 전 조회 2,204
17년 전 조회 3,024
17년 전 조회 1,297
17년 전 조회 1,392
17년 전 조회 1,606
17년 전 조회 1,277
17년 전 조회 4,412
17년 전 조회 3,947
17년 전 조회 2,845
17년 전 조회 1,642
17년 전 조회 1,377
17년 전 조회 1,654
17년 전 조회 2,572
17년 전 조회 1,779
17년 전 조회 2,076
17년 전 조회 1,356
17년 전 조회 1,091
17년 전 조회 1,170
17년 전 조회 2,973
17년 전 조회 2,518
17년 전 조회 2,094
17년 전 조회 2,099
17년 전 조회 1,837
17년 전 조회 2,298
17년 전 조회 2,066
17년 전 조회 2,030
17년 전 조회 1,923
17년 전 조회 1,258
17년 전 조회 1,875
17년 전 조회 2,273
17년 전 조회 2,362
17년 전 조회 1,691
17년 전 조회 1,551
17년 전 조회 1,405
17년 전 조회 2,623
17년 전 조회 2,722
17년 전 조회 2,116
17년 전 조회 2,463
17년 전 조회 2,773
17년 전 조회 1,364
17년 전 조회 1,229
17년 전 조회 6,374
17년 전 조회 1,224
17년 전 조회 1,679
17년 전 조회 1,820
17년 전 조회 1,145
17년 전 조회 1,240
17년 전 조회 1,939
17년 전 조회 1,564
17년 전 조회 3,662
17년 전 조회 1,259
17년 전 조회 1,951
17년 전 조회 1,212
17년 전 조회 1,435
17년 전 조회 2,407
17년 전 조회 2,064
17년 전 조회 1,079
17년 전 조회 1,087
17년 전 조회 1,141
17년 전 조회 6,087
17년 전 조회 5,895
17년 전 조회 2,083
17년 전 조회 1,064
17년 전 조회 1,169
17년 전 조회 2,125
17년 전 조회 1,558
17년 전 조회 1,202
17년 전 조회 1,231
17년 전 조회 1,168
17년 전 조회 1,097
17년 전 조회 4,006
17년 전 조회 2,212
17년 전 조회 1,662
17년 전 조회 2,814
17년 전 조회 1,512
17년 전 조회 1,197
17년 전 조회 1,225
17년 전 조회 1,286
17년 전 조회 1,175