]>
Commit | Line | Data |
---|---|---|
1 | # Load dynamic Python code first. | |
2 | source ~/.gdbinit.py | |
3 | ||
4 | # | |
5 | # Base settings. | |
6 | # | |
7 | ||
8 | set print pretty on | |
9 | set prompt \e[30;1m(\e[34;1mgdb\e[30;1m) \e[0m | |
10 | set history save on | |
11 | set pagination off | |
12 | set output-radix 16 | |
13 | set remotetimeout 300 | |
14 | #handle SIGINT nostop noprint pass | |
15 | #handle SIGQUIT stop print nopass | |
16 | #catch fork | |
17 | #catch vfork | |
18 | ||
19 | # | |
20 | # U-Boot style memory compare functions | |
21 | # | |
22 | ||
23 | define _cmp | |
24 | set $$base = (unsigned long)$arg0 | |
25 | set $$addr1 = $arg0 | |
26 | set $$addr2 = $arg1 | |
27 | set $$count = $arg2 | |
28 | while $$count-- > 0 | |
29 | if (*$$addr1 != *$$addr2) | |
30 | printf "Data mismatch at %#x units (@%#x != @%#x)\n", $arg2, $$addr1, $$addr2 | |
31 | set $$count = -100 | |
32 | end | |
33 | set $$addr1 += 1 | |
34 | set $$addr2 += 1 | |
35 | end | |
36 | if $$count == -1 | |
37 | printf "Data matches for %#x units\n", $arg2 | |
38 | end | |
39 | dont-repeat | |
40 | end | |
41 | document _cmp | |
42 | Usage: cmp[bwl] <address> <address> <count> | |
43 | Compare <count> <bytes|words|longs> between <address> and <address>. | |
44 | end | |
45 | ||
46 | define cmpb | |
47 | if $argc == 3 | |
48 | set $$addr1 = (unsigned char *)$arg0 | |
49 | set $$addr2 = (unsigned char *)$arg1 | |
50 | _cmp $$addr1 $$addr2 $arg2 | |
51 | else | |
52 | help _cmp | |
53 | end | |
54 | end | |
55 | document cmpb | |
56 | Use 'help _cmp' | |
57 | end | |
58 | define cmpw | |
59 | if $argc == 3 | |
60 | set $$addr1 = (unsigned short *)$arg0 | |
61 | set $$addr2 = (unsigned short *)$arg1 | |
62 | _cmp $$addr1 $$addr2 $arg2 | |
63 | else | |
64 | help _cmp | |
65 | end | |
66 | end | |
67 | document cmpw | |
68 | Use 'help _cmp' | |
69 | end | |
70 | define cmpl | |
71 | if $argc == 3 | |
72 | set $$addr1 = (unsigned long *)$arg0 | |
73 | set $$addr2 = (unsigned long *)$arg1 | |
74 | _cmp $$addr1 $$addr2 $arg2 | |
75 | else | |
76 | help _cmp | |
77 | end | |
78 | end | |
79 | document cmpl | |
80 | Use 'help _cmp' | |
81 | end | |
82 | ||
83 | ||
84 | # | |
85 | # U-Boot style memory copy functions | |
86 | # | |
87 | ||
88 | define _cp | |
89 | set $$src = $arg0 | |
90 | set $$dst = $arg1 | |
91 | set $$count = $arg2 | |
92 | while $$count-- > 0 | |
93 | set *$$dst = *$$src | |
94 | set $$src += 1 | |
95 | set $$dst += 1 | |
96 | end | |
97 | printf "Copied %#x units from %#x to %#x\n", $arg2, $arg0, $arg1 | |
98 | dont-repeat | |
99 | end | |
100 | document _cp | |
101 | Usage: cp[bwl] <src> <dst> <count> | |
102 | Copy <count> <bytes|words|longs> from <src> to <dst>. | |
103 | end | |
104 | ||
105 | define cpb | |
106 | if $argc == 3 | |
107 | set $$addr1 = (unsigned char *)$arg0 | |
108 | set $$addr2 = (unsigned char *)$arg1 | |
109 | _cp $$addr1 $$addr2 $arg2 | |
110 | else | |
111 | help _cp | |
112 | end | |
113 | end | |
114 | document cpb | |
115 | Use 'help _cp' | |
116 | end | |
117 | define cpw | |
118 | if $argc == 3 | |
119 | set $$addr1 = (unsigned short *)$arg0 | |
120 | set $$addr2 = (unsigned short *)$arg1 | |
121 | _cp $$addr1 $$addr2 $arg2 | |
122 | else | |
123 | help _cp | |
124 | end | |
125 | end | |
126 | document cpw | |
127 | Use 'help _cp' | |
128 | end | |
129 | define cpl | |
130 | if $argc == 3 | |
131 | set $$addr1 = (unsigned long *)$arg0 | |
132 | set $$addr2 = (unsigned long *)$arg1 | |
133 | _cp $$addr1 $$addr2 $arg2 | |
134 | else | |
135 | help _cp | |
136 | end | |
137 | end | |
138 | document cpl | |
139 | Use 'help _cp' | |
140 | end | |
141 | ||
142 | ||
143 | #set extended-prompt \[\e[30;1m\](\[\e[34;1m\]gdb\[\e[30;1m\]) \[\e[0m\] |