# ______________breakpoint aliases____________ _
define bpl
 info breakpoints
end

define bpc 
 clear $arg0
end

define bpe
 enable $arg0
end

define bpd
 disable $arg0
end

# ______________informacje o procesie___________ _
define stack
 info stack
 info frame
 info args
 info locals
end

define reg
 printf "     eax:%08X ebx:%08X  ecx:%08X",  $eax, $ebx, $ecx
 printf " edx:%08X\teflags:%08X\n",  $edx, $eflags
 printf "     esi:%08X edi:%08X  esp:%08X",  $esi, $edi, $esp
 printf " ebp:%08X\teip:%08X\n", $ebp, $eip
 printf "     cs:%04X  ds:%04X  es:%04X", $cs, $ds, $es
 printf "  fs:%04X  gs:%04X  ss:%04X\n", $fs, $gs, $ss
end

define func
 info functions
end

define var
 info variables
end

define lib
 info sharedlibrary
end

define sig
 info signals
end

define thread
 info threads
end

define u
 info udot
end

define dis
 disassemble $arg0
end

 # ________________zawarto adresu w postaci hex i ascii _____________ _
define hexdump
 printf "%08X : ", $arg0
 printf "%02X %02X %02X %02X  %02X %02X %02X %02X",                   \
     *(unsigned char*)($arg0), *(unsigned char*)($arg0 + 1),       \
     *(unsigned char*)($arg0 + 2), *(unsigned char*)($arg0 + 3),   \
     *(unsigned char*)($arg0 + 4), *(unsigned char*)($arg0 + 5),   \
     *(unsigned char*)($arg0 + 6), *(unsigned char*)($arg0 + 7)
 printf " - "
 printf "%02X %02X %02X %02X  %02X %02X %02X %02X ",                  \
     *(unsigned char*)($arg0 + 8), *(unsigned char*)($arg0 + 9),   \
     *(unsigned char*)($arg0 + 10), *(unsigned char*)($arg0 + 11), \
     *(unsigned char*)($arg0 + 12), *(unsigned char*)($arg0 + 13), \
     *(unsigned char*)($arg0 + 14), *(unsigned char*)($arg0 + 15)
 printf "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",                         \
     *(unsigned char*)($arg0), *(unsigned char*)($arg0 + 1),       \
     *(unsigned char*)($arg0 + 2), *(unsigned char*)($arg0 + 3),   \
     *(unsigned char*)($arg0 + 4), *(unsigned char*)($arg0 + 5),   \
     *(unsigned char*)($arg0 + 6), *(unsigned char*)($arg0 + 7),   \
     *(unsigned char*)($arg0 + 8), *(unsigned char*)($arg0 + 9),   \
     *(unsigned char*)($arg0 + 10), *(unsigned char*)($arg0 + 11), \
     *(unsigned char*)($arg0 + 12), *(unsigned char*)($arg0 + 13), \
     *(unsigned char*)($arg0 + 14), *(unsigned char*)($arg0 + 15)
end

# ________________kontekst procsu _____________ _
define context
printf "______________________________________ _"
printf "_______________________________________ _\n"
reg
printf "[%04X:%08X]------------------------", $ss, $esp
printf "---------------------------------[stack]\n"
hexdump $sp+48
hexdump $sp+32
hexdump $sp+16
hexdump $sp
printf "[%04X:%08X]------------------------", $cs, $eip
printf "---------------------------------[ code]\n"
x /8i $pc
printf "---------------------------------------"
printf "---------------------------------------\n"
end

# ________________kontrola procesu_____________ _
define n
 ni
 context
end

define c
 continue
 context
end

define go
 stepi $arg0
 context
end

define goto
 tbreak $arg0
 continue
 context
end

define pret
 finish
 context
end

define start
 tbreak _start
 r
 context
end

define main
 tbreak main
 r
 context
end

# __________________opcje wywietlania________________ _
set confirm 0
set verbose off
set prompt gdb> 
set output-radix 0x10
set input-radix 0x10
