1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
.arch i386
.section ".data", "aw", @progbits
watch_me:
.long 0xfeedbeef
.section ".text", "ax", @progbits
.code32
gdbstub_test:
/* 1. Read registers test */
movl $0xea010203, %eax
movl $0xeb040506, %ebx
movl $0xec070809, %ecx
movl $0xed0a0b0c, %edx
movl $0x510d0e0f, %esi
movl $0xd1102030, %edi
int $3
/* 2. Write registers test */
int $3
/* 3. Read memory test */
subl $8, %esp
movl $0x11223344, 4(%esp)
movw $0x5566, 2(%esp)
movb $0x77, (%esp)
int $3
/* 4. Write memory test */
int $3
addl $8, %esp
/* 5. Step test */
int $3
nop
/* 6. Access watch test */
movl $0x600d0000, %ecx
movl watch_me, %eax
movl $0xbad00000, %ecx
int $3
movl $0x600d0001, %ecx
movl %eax, watch_me
movl $0xbad00001, %ecx
int $3
/* 7. Write watch test */
movl $0x600d0002, %ecx
movl %eax, watch_me
movl $0xbad00002, %ecx
int $3
1:
jmp 1b
|