실전코딩

PHP 에서의 디버그

· 2008-07-06 (일) 15:19:02 · 3002
원본: 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건
+
제목 글쓴이 날짜 조회
08-09-05 조회 4,568
08-09-05 조회 3,506
08-09-05 조회 5,089
08-09-05 조회 2,972
08-09-05 조회 3,564
08-09-05 조회 3,477
08-09-05 조회 2,921
08-09-05 조회 3,444
08-09-04 조회 3,336
08-09-04 조회 3,254
08-09-03 조회 4,414
08-09-03 조회 3,394
08-09-03 조회 2,667
08-09-03 조회 2,678
08-09-03 조회 3,388
08-09-01 조회 4,500
08-08-29 조회 3,506
08-08-28 조회 2,758
08-08-28 조회 5,545
08-08-27 조회 3,266
08-08-21 조회 4,794
08-08-18 조회 7,399
08-08-18 조회 2,873
08-08-18 조회 2,843
08-08-18 조회 2,442
08-08-17 조회 2,585
08-08-16 조회 4,389
08-08-15 조회 3,257
08-08-15 조회 3,863
08-08-14 조회 2,476
08-08-14 조회 4,465
08-08-13 조회 3,360
08-08-12 조회 3,857
08-08-11 조회 2,627
08-08-10 조회 2,991
08-08-09 조회 2,336
08-08-08 조회 2,444
08-08-08 조회 3,020
08-08-08 조회 2,387
08-08-08 조회 5,492
08-08-07 조회 2,750
08-08-05 조회 3,175
08-08-03 조회 8,381
08-08-03 조회 2,529
08-08-02 조회 3,102
08-08-01 조회 4,450
08-07-31 조회 2,422
08-07-31 조회 3,150
08-07-31 조회 2,297
08-07-31 조회 3,001
08-07-30 조회 3,429
08-07-28 조회 4,309
08-07-25 조회 2,421
08-07-23 조회 2,504
08-07-23 조회 2,766
08-07-22 조회 2,393
08-07-22 조회 5,540
08-07-22 조회 5,133
08-07-22 조회 4,028
08-07-20 조회 2,741
08-07-19 조회 2,506
08-07-18 조회 2,790
08-07-18 조회 3,757
08-07-17 조회 2,884
08-07-15 조회 3,271
08-07-15 조회 2,464
08-07-11 조회 2,213
08-07-11 조회 2,292
08-07-10 조회 4,235
08-07-10 조회 3,697
08-07-10 조회 3,249
08-07-10 조회 3,270
08-07-10 조회 2,984
08-07-10 조회 3,438
08-07-10 조회 3,273
08-07-10 조회 3,127
08-07-08 조회 3,061
08-07-08 조회 2,326
08-07-06 조회 3,003
08-07-06 조회 3,535
08-07-05 조회 3,552
08-07-04 조회 2,919
08-07-03 조회 2,710
08-07-03 조회 2,583
08-07-02 조회 3,745
08-06-30 조회 3,819
08-06-30 조회 3,302
08-06-30 조회 3,608
08-06-28 조회 3,927
08-06-27 조회 2,476
08-06-27 조회 2,288
08-06-27 조회 7,572
08-06-27 조회 2,345
08-06-25 조회 2,782
08-06-24 조회 2,983
08-06-24 조회 2,244
08-06-23 조회 2,315
08-06-19 조회 3,100
08-06-19 조회 2,693
08-06-19 조회 4,861