실전코딩

PHP 에서의 디버그

· 2008-07-06 (일) 15:19:02 · 3047
원본: 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에서 이동 됨]
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
11-08-16 조회 2,456
11-08-16 조회 2,450
11-08-12 조회 2,282
11-08-02 조회 2,861
11-07-27 조회 2,238
11-07-25 조회 2,350
11-06-28 조회 2,552
11-06-06 조회 4,063
11-06-04 조회 2,640
11-04-25 조회 6,222
11-04-22 조회 2,725
11-04-21 조회 2,957
11-04-08 조회 3,371
11-03-31 조회 2,876
11-03-20 조회 3,305
11-03-10 조회 2,904
11-03-04 조회 3,219
11-03-03 조회 2,954
11-02-26 조회 4,389
11-02-14 조회 5,738
11-02-08 조회 3,339
11-01-30 조회 5,429
11-01-14 조회 5,234
11-01-14 조회 3,782
11-01-14 조회 2,932
11-01-14 조회 2,963
11-01-14 조회 3,118
11-01-12 조회 2,892
11-01-07 조회 4,540
10-12-29 조회 2,560
10-12-22 조회 2,504
10-12-05 조회 5,908
10-11-22 조회 5,279
10-11-13 조회 3,648
10-10-27 조회 3,256
10-10-21 조회 2,965
10-09-21 조회 2,958
10-09-17 조회 3,024
10-09-15 조회 3,465
10-09-14 조회 4,068
10-05-18 조회 2,964
10-02-17 조회 4,397
10-02-12 조회 3,151
09-12-14 조회 5,222
09-12-14 조회 6,087
09-09-19 조회 4,439
09-08-16 조회 6,300
09-07-22 조회 5,700
09-04-13 조회 3,095
09-03-15 조회 5,113
09-03-05 조회 3,943
09-02-09 조회 2,895
08-12-30 조회 3,074
08-12-06 조회 3,271
08-11-30 조회 3,612
08-10-18 조회 4,461
08-10-08 조회 3,847
08-09-19 조회 4,419
08-09-05 조회 3,050
08-09-05 조회 5,146
08-09-05 조회 3,021
08-09-05 조회 3,629
08-09-05 조회 3,536
08-09-01 조회 4,554
08-08-07 조회 2,803
08-06-08 조회 3,266
08-06-02 조회 2,873
08-05-26 조회 5,290
08-05-09 조회 4,346
08-04-22 조회 3,971
08-04-17 조회 4,540
08-04-17 조회 5,609
08-04-17 조회 3,754
08-04-17 조회 8,738
08-04-17 조회 4,652
08-04-17 조회 4,564
08-04-09 조회 3,103
08-03-31 조회 3,582
08-03-26 조회 3,307
08-03-25 조회 3,589
08-03-25 조회 4,011
08-03-25 조회 4,038
08-03-25 조회 3,702
08-03-25 조회 3,597
08-03-25 조회 3,605
08-03-25 조회 5,299
08-02-03 조회 5,382
08-01-18 조회 6,679
08-01-17 조회 3,970
08-01-17 조회 3,788
08-01-12 조회 4,091
08-01-08 조회 3,403
07-12-28 조회 4,684
07-12-04 조회 3,572
07-11-30 조회 5,174
07-11-30 조회 5,769
07-11-02 조회 4,058
07-10-24 조회 4,043
07-10-24 조회 3,324
07-10-24 조회 3,431