|Re: [hatari-devel] "profile stack" command added|
[ Thread Index |
| More lists.tuxfamily.org/hatari-devel Archives
On lauantai 01 kesäkuu 2013, Eero Tamminen wrote:
> I also added arg showing for rest of non-MiNT GEMDOS calls when
> doing GEMDOS tracing, so now one could use this to track e.g.
> memory allocations from TOS:
> --- debugger commands ---
> profile on
> symbols prg
> # Maxalloc, Malloc, Mfree, Mshrink
> b GemdosOpcode = 0x44 :noinit :quiet :file showcallers.ini
> b GemdosOpcode = 0x48 :noinit :quiet :file showcallers.ini
> b GemdosOpcode = 0x49 :noinit :quiet :file showcallers.ini
> b GemdosOpcode = 0x4A :noinit :quiet :file showcallers.ini
> --- showcallers.ini ---
> profile stack
> b pc = "NextPC" :noinit :quiet :file showretval.ini
Sorry, this should have also ":once" option, otherwise you
might run out of breakpoints...
Unrelated question. Why in cart_asm.s:
; This is the cartridge header:
dc.l $ABCDEF42 ; C-FLAG (magic value)
dc.l $00000000 ; C-NEXT
dc.l sys_init+$08000000 ; C-INIT - flag has bit 3 set = before
disk boot, but after GEMDOS init
$08000000 is added to sys_init address? What's the flag bit 3?
When TOS goes through cartridge code and jumps to that address
(which does linea_init variable setup for Hatari), PC gets an "illegal"
address value. Emulation itself masks the extra bits off from the
address, but profiling code throws a fit about it when I profile
> --- showretval.ini ---
> e d0
> - Eero
>  By default breakpoints re-initialize debugger state,
> which would reset profiling callstack.