IT/Tips

gdb 반복문 for while

싸후이 2010. 11. 12. 18:43
100 : for ( i = 0; i < 1000000; i++ ) {
101 :     /* to do 1 */
102 :     /* to do 2 */
103 : }
104 : /* to do 3 */

- for 반복문을 끝낸다.
(gdb) util

- for 반복문을 끝내고 /* to do 3 */ ( line number 104 )에서 멈춘다.
(gdb) advance 104

- for 문에서 i 값에 조건을 걸어 조건이 만족하면 break point 에서 멈춘다.
(gdb) break 101
(gdb) info b
...
2   breakpoint ...................: 101
...
(gdb) cond 2 i == 50000

- for 문에서 N번 발생하는 break point 를 무시하기 
(gdb) ignore 2 500           ( for 문에서 500번 루프돌때 까지 break point 는 무시된다)

변수 내용 저장
(gdb) dump binary value dump.dat 변수명
변수 내용 적용
(gdb) restore dump.data binary 변수명

내용 확인
> od -td dump.data



char buf[1024];
memcpy( buf, src, 1024);
(gdb) print buf
$1 = 0x804a93c "fkjdsklafjaksdlfjalksfjsdlakfjdsfkdsjafksdjf"......

- 변수의 내용 출력이 짤릴떄 변수 내용 모두 출력하기
스트링 버퍼 출력시 잘리지 않고 전체 값을 볼려고 할때 number-of-elements 값을 버퍼 크기 만큼 설정
(gdb) set print elements %number-of-elements
(gdb) set print elements 1024
(gdb) print buf
$1 = 0x804a93c "fkjdsklafjaksdlfjalksfjsdlakfjdsfkdsjafksdjfjdskajfdklsjfaklfjsdkfjasdklfjaslkjfd"

- fork후 자식 프로세스 디버깅
(gdb) set follow-fork-mode child

'IT > Tips' 카테고리의 다른 글

gdb 디비깅  (0) 2011.01.26
python 문자열 제어  (0) 2010.11.23
rpmbuild options and centos kernel source rpm build  (0) 2010.11.10
database 용어  (0) 2010.09.29
Linux USB Guide  (0) 2010.06.16