# $Id$
#
# Skrypciki s dla GDB 6.8, w 6.1 jest inna skadnia.

# Czasem GDB nie rozpoznaje niektrych typw,
# i trzeba rzutowa przy print(). cprint automatycznie
# rzutuje.

define cprint
    print (const char*) $arg0
end

#
# gwatch (adres)
#
# watch() oferowany przez GDB automatycznie
# kasuje punkt wstrzymania, jeeli wyjdzie z zasigu
# symboli, ktre wystpuj obserwowanym wyraeniu.
#
# g(lobal)watch uruchamia watch'a bezporednio na danej
# pamici, pomijajc symbole.
#
# Przykad uycia:
#   gwatch &bp->flags
#

define gwatch
    set $tmp = $arg0
    watch (void*) *(uintptr_t*) $tmp
end

define gwatch32
    set $tmp = $arg0
    watch *(uint32_t*) $tmp
end

define gwatch16
    set $tmp = $arg0
    watch *(uint16_t*) $tmp
end

define gwatch8
    set $tmp = $arg0
    watch *(uint8_t*) $tmp
end

document gwatch
Watch wrap for given address, independent from symbol.
end

#
# can_inta
#
# sprawdza czy procesor ma wczone przerwania
# 

define can_int
    if $eflags & 512
        printf "YES, IPL=%i\n", CIPL
    else
        printf "NO\n"
    end
end

document can_int
Checking if interrupt can occur.
end

#
# ps
#
# Wywietla list procesw.
#

define ps
    output/fmt "PID     PPID    %u\n", "IMAGE"
    $p = (proc_t*) procs_list.ls_root.next
    while ($p)
    end
    
end


document ps
Showing current processes.
end

# zakomentuj ponisz linie jeeli nie uywasz Bochs
set can-use-hw-watchpoints 0

#display /5i $pc
#display curthread->thr_wdescr
target remote 127.0.0.1:1234
break panic
#layout split


