====== JOCKEY 사용하기 ====== 리눅스 상에서 record & replay 를 이용해서 일어나기 힘든 버그를 재현 해낼 수 있는 jockey 의 사용법에 대해서 설명한다. jockey 는 'BINARY HACKS' 라는 책에서 소개하고 있다. ====== 준비운동 하기 ====== jockey 는 http://home.gna.org/jockey/ 에서 다운 받을 수 있다. 현재 최신 버전은 0.8.1 이며, 각각 source 와 rpm 포맷으로 받을 수 있다. 참고로 여기서는 rpm 포맷으로 설치하기로 한다. 리눅스는 페도라 코어 4 를 설치했다. ====== 설치 하기 ====== jockey 를 설치하기 전에 미리 설치되어 있어야 할 rpm 패키지들이 있다. - autoconf - libtool - boost, boost-devel - ruby, ruby-lib, ruby-devel 없다면, 설치해주어야 한다. http://download.gna.org/jockey/fc4/ 에서 가장 최신버전(jockey-0.8.1-1.i386.rpm, jockey-debuginfo-0.8.1-1.i386.rpm)을 다운로드 한다. #rpm -ivh jockey-debuginfo-0.8.1-1.i386.rpm #rpm -ivh jockey-0.8.1-1.i386.rpm // 의존성 오류 설치시에 의존성 오류가 발생하면, '--nodeps' 옵션을 추가한다. #rpm -ivh --nodeps jockey-0.8.1-1.i386.rpm 에러없이 설치되었다면, /etc/sysctl.conf 파일에 다음을 추가해준다. kernel.randomize_va_space = 0 vm.legacy_va_layout = 1 그리고 재부팅한다. ====== 사용 하기 ====== record & replay 를 확인하기 위해서 실시간 시간을 출력하는 date 명령어를 이용해보겠다. #jockey /bin/date Warning: /bin/date is, by default, excluded from tracing. Warning: I'm adding 'excludedprogram=-' option as a courtesy. Tue Oct 30 04:22:34 KST 2007 이제 다시 실행시켜 보겠다. #jockey --replay=1 /bin/date Warning: /bin/date is, by default, excluded from tracing. Warning: I'm adding 'excludedprogram=-' option as a courtesy. Tue Oct 30 04:22:34 KST 2007 같은 결과가 출력되는 것을 볼 수 있다. 이번에는 소켓을 이용한 프로그램을 record & replay 해보겠다. #jockey 더블유겟 -qO- 'http://www.random.org/integers/?num=100&min=1&max=100&col=5&base=10&format=html&rnd=new' Warning: /usr/bin/더블유겟 is, by default, excluded from tracing. Warning: I'm adding 'excludedprogram=-' option as a courtesy. RANDOM.ORG - Integer Generator

v2.0 beta
True Random Number Service

Random Integer Generator

Here are your random numbers:

8     19      9       96      83
59      12      18      77      34
53      82      73      26      49
18      71      93      55      74
40      69      40      92      100
5       43      61      95      46
38      75      15      29      12
57      35      83      56      49
31      15      79      83      43
27      39      69      37      52
2       66      68      20      81
19      67      22      88      50
98      49      64      94      66
80      40      94      52      97
99      1       25      83      56
97      19      3       62      7
19      94      7       8       84
52      15      82      82      50
42      76      23      63      65
46      100     68      7       73

Timestamp: 2007-12-28 13:52:29 UTC

Note: The numbers are generated left to right, i.e., across columns.

위에서 주의깊게 봐야할 부분은 랜덤한 숫자들이다. #jockey --replay=1 더블유겟 -qO- 'http://www.random.org/integers/?num=100&min=1&max=100&col=5&base=10&format=html&rnd=new' Warning: /usr/bin/더블유겟 is, by default, excluded from tracing. Warning: I'm adding 'excludedprogram=-' option as a courtesy. RANDOM.ORG - Integer Generator

v2.0 beta
True Random Number Service

Random Integer Generator

Here are your random numbers:

8     19      9       96      83
59      12      18      77      34
53      82      73      26      49
18      71      93      55      74
40      69      40      92      100
5       43      61      95      46
38      75      15      29      12
57      35      83      56      49
31      15      79      83      43
27      39      69      37      52
2       66      68      20      81
19      67      22      88      50
98      49      64      94      66
80      40      94      52      97
99      1       25      83      56
97      19      3       62      7
19      94      7       8       84
52      15      82      82      50
42      76      23      63      65
46      100     68      7       73

Timestamp: 2007-12-28 13:52:29 UTC

Note: The numbers are generated left to right, i.e., across columns.

출력된 숫자가 같은 것을 볼 수 있다.