home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
programs
/
comms_networking
/
hearsay
/
!Hearsay
/
Libraries
/
Debug
(
.txt
)
next >
Wrap
RISC OS BBC BASIC V Source
|
1996-01-25
|
5KB
|
176 lines
> Debugging library
Chris Rutter, 1995
debug_startup
ael("debug_startup")
debugwin%=
wbk%!0=252
wbk%!12=0
wbk%!16=&97fc1
wbk%!20=1
$(wbk%+24)="Hearsay"
$(wbk%+32)=""
"Wimp_SendMessage",17,wbk%,0
debug_pointer%>1
debug_message("has startup debug messages; spooling:")
dummy%=1
debug_pointer%-1
debug_message(debug_history$(dummy%))
dummy%
debug_shutdown
ael("debug_shutdown")
wbk4%!0=252
wbk4%!12=0
wbk4%!16=&97fc1
wbk4%!20=2
$(wbk4%+24)=taskname_short$
$(wbk4%+32)=""
"Wimp_SendMessage",17,wbk4%,0
debug_message(message$)
message$,"!")=0
message$=
msg_parse(message$)
debugmode%
wbk4%!64=252
wbk4%!(64+12)=0
wbk4%!(64+16)=&97fc1
wbk4%!(64+20)=3
$(wbk4%+24+64)="Hearsay"
message$,6)="END = "
,# wbk4%!(32+64)=
message$,7))
wbk4%!(64+20)=4
debug_monitor$<>""
$(wbk4%+24+64)=
debug_types(debug_monitor$)
$(wbk4%+32+64)=message$
debugwin%
"Wimp_SendMessage",17,wbk4%+64,0
5- debug_history$(debug_pointer%)=message$
debug_pointer%+=1
debug_receivemessage
ael("debug_receivemessage")
dummy$
debugmode%=
debugmode%=
debugmode%
last_end%=
debugmode%
debug_history$(32):debug_pointer%=1
debugwin%=
block%!20=0
dummy$=$(block%+24)
dummy$,2)="FN"
dummy$="var:"+dummy$
dummy$,4)="var:"
dummy$=
dummy$,5)
debug_message(dummy$+"="+
debug_types(dummy$))
dummy$,8)="monitor:"
debug_monitor$=
dummy$,9)
dummy$
"blankusers" : active_users%=0
"quit" : quit%=
"users" :
enumerate_users
"heaps" :
enumerate_heaps
"groupanchors" :
enumerate_groupanchors
"integrity" :
check_integrity
"groups" :
enumerate_newslist
"articles" :
enumerate_articles
"memory" :
enumerate_memory
"info"
debug_message(taskname_long$+" version "+
msg("Version"))
block%!20=1
debug_message("I am running.")
enumerate_memory
debug_message("")
debug_message("last used address="+
-&8000))
debug_message("last allocated address="+
-&8000))
debug_message("variables start="+
-&8000))
debug_message("slotsize="+
(slotsize%))
debug_message("total external heap size="+
(slotsize%-(
-&8000)))
debug_message("variables space="+
debug_types(dummy$)
string%
string%=
dummy$,1)="%"
string%=
dummy$,"%")>0
string%=
dummy$,"FN")>0
string%=
dummy$,"$")>0
string%=
string%=
(dummy$)
(dummy$))
check_integrity
ierror$,heap%
debug_message("Testing integrity...")
w!ierror$="heap granulation OK"
heap%=1
active_heaps%-1
heap_base%(heap%)+heap_size%(heap%)<>heap_base%(heap%+1)
debug_message("Heap {heap%} ends at {heap_base%(heap%)+heap_size%(heap%)} but heap {heap%+1} begins at {heap_base%(heap%+1)}"):ierror$="heap granularity faults"
heap%
heap_base%(active_heaps%)+heap_size%(active_heaps%)<>heaps_top%
debug_message("heaps_top% is {heaps_top%}; should be {heap_base%(active_heaps%)+heap_size%(active_heaps%)}")
$ ierror$+=",heaps_top incorrect"
slotsize%>heaps_top%-&8000
debug_message("Slotsize at {slotsize%}, heaps_top at {heaps_top%-&8000}")
E ierror$+=",slotsize too big by "+
(slotsize%-(heaps_top%-&8000))
heap%=0
newslist_groups%-1
group_expanded%?heap%<0
group_expanded%?heap%>2
debug_message("group {group%} has an out of range expansion code ({group_expanded%?heap%})")
group_expanded%?heap%=2
heap_from_anchor(
group_anchor_display(heap%))<1
heap_from_anchor(
group_anchor_display(heap%))>active_heaps%
debug_message("Display cache pointer for group {heap%} is illegal")
heap_from_anchor(
group_anchor_full(heap%))<1
heap_from_anchor(
group_anchor_full(heap%))>active_heaps%
debug_message("Full list cache pointer for group {heap%} is illegal")
heap_from_anchor(
group_anchor_info(heap%))<1
heap_from_anchor(
group_anchor_info(heap%))>active_heaps%
debug_message("Info cache pointer for group {heap%} is illegal")
heap%
debug_message(ierror$)
fix_integrity
Bheaps_top%=heap_base%(active_heaps%)+heap_size%(active_heaps%)
slotsize%=heaps_top%-&8000
"Wimp_SlotSize",slotsize%,-1
enumerate_groupanchors
ael("enumerate_groupanchors")
group%
group%=0
newslist_groups%-1
group_expanded%?group%=2
debug_message("Group {group%}...")
debug_message(" Full subject cache @ heap {FNheap_from_anchor(FNgroup_anchor_full(group%))}")
debug_message(" Display cache @ heap {FNheap_from_anchor(FNgroup_anchor_display(group%))}")
debug_message(" Info cache @ heap {FNheap_from_anchor(FNgroup_anchor_info(group%))}")
group%