# Load dynamic Python code first.
source ~/.gdbinit.py
#
# Base settings.
#
set print pretty on
set prompt [30;1m([34;1mgdb[30;1m) [0m
set history save on
set pagination off
set output-radix 16
set remotetimeout 300
#handle SIGINT nostop noprint pass
#handle SIGQUIT stop print nopass
#catch fork
#catch vfork
#
# U-Boot style memory compare functions
#
define _cmp
set $$base = (unsigned long)$arg0
set $$addr1 = $arg0
set $$addr2 = $arg1
set $$count = $arg2
while $$count-- > 0
if (*$$addr1 != *$$addr2)
printf "Data mismatch at %#x units (@%#x != @%#x)\n", $arg2, $$addr1, $$addr2
set $$count = -100
end
set $$addr1 += 1
set $$addr2 += 1
end
if $$count == -1
printf "Data matches for %#x units\n", $arg2
end
dont-repeat
end
document _cmp
Usage: cmp[bwl]
Compare between and .
end
define cmpb
if $argc == 3
set $$addr1 = (unsigned char *)$arg0
set $$addr2 = (unsigned char *)$arg1
_cmp $$addr1 $$addr2 $arg2
else
help _cmp
end
end
document cmpb
Use 'help _cmp'
end
define cmpw
if $argc == 3
set $$addr1 = (unsigned short *)$arg0
set $$addr2 = (unsigned short *)$arg1
_cmp $$addr1 $$addr2 $arg2
else
help _cmp
end
end
document cmpw
Use 'help _cmp'
end
define cmpl
if $argc == 3
set $$addr1 = (unsigned long *)$arg0
set $$addr2 = (unsigned long *)$arg1
_cmp $$addr1 $$addr2 $arg2
else
help _cmp
end
end
document cmpl
Use 'help _cmp'
end
#
# U-Boot style memory copy functions
#
define _cp
set $$src = $arg0
set $$dst = $arg1
set $$count = $arg2
while $$count-- > 0
set *$$dst = *$$src
set $$src += 1
set $$dst += 1
end
printf "Copied %#x units from %#x to %#x\n", $arg2, $arg0, $arg1
dont-repeat
end
document _cp
Usage: cp[bwl]
Copy from to .
end
define cpb
if $argc == 3
set $$addr1 = (unsigned char *)$arg0
set $$addr2 = (unsigned char *)$arg1
_cp $$addr1 $$addr2 $arg2
else
help _cp
end
end
document cpb
Use 'help _cp'
end
define cpw
if $argc == 3
set $$addr1 = (unsigned short *)$arg0
set $$addr2 = (unsigned short *)$arg1
_cp $$addr1 $$addr2 $arg2
else
help _cp
end
end
document cpw
Use 'help _cp'
end
define cpl
if $argc == 3
set $$addr1 = (unsigned long *)$arg0
set $$addr2 = (unsigned long *)$arg1
_cp $$addr1 $$addr2 $arg2
else
help _cp
end
end
document cpl
Use 'help _cp'
end
#set extended-prompt \[\e[30;1m\](\[\e[34;1m\]gdb\[\e[30;1m\]) \[\e[0m\]