Re: [hatari-devel] Hatari debugger questions |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Hatari debugger questions
- From: Uwe Seimet <Uwe.Seimet@xxxxxxxxx>
- Date: Mon, 26 Feb 2018 19:34:27 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1519670067; s=strato-dkim-0002; d=seimet.de; h=In-Reply-To:Content-Transfer-Encoding:Content-Type:References: Message-ID:Subject:To:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=v5yaoYoVF0FuZKTSGJy2PMc7Qoe5q5rk51j8kwTn3+I=; b=p2LL45JbxAlB8SvtOK/AIXmtU4B65pDUGyLz8rVsnorLSGCht49UdMY2YRuCiMsdfX JUKXe/TZ47Fy1YnuOeb/eGdqOcDpW2BvYlBOVsaJqIL9N/z9FeGZUU9VtkFlIiWb8g7E gn4NRTW7Vfr+4MwuFblesJZoR+m/dZLsjewfwSPpWGwIcm8bV7QbKenz0Z4NNKSygjl4 7RGZLxDz3qdhikLQvv2pQWWxLjhRZxhyE9LZkBU2vzlHD5P5gqZKhBvHMhLoScJ0yGmF gUvMJ0Luna836JheksMmYAtcNkvqljbrd86Acc00hbUMGHjW9LtuopwnGG3TKXXahT09 kvvQ==
Hi Nicolas,
Thank you, I will try this as soon as I have time. I am always using the
latest Hatari development version, by the way.
Best regards
Uwe
> Le 26/02/2018 à 11:46, Nicolas Pomarède a écrit :
>
> >> Further, when I change the pc value and then enter 's' my expectation is
> >> that the first command at the new pc location is executed. What happens
> >> instead is that the instruction at the previous (old) pc location is
> >> executed.
> >>
> >> Am I doing something wrong? What do I have to do in order to change the
> >> pc value and then to single-step starting at the new pc location?
> >>
> >
> > I will write a small asm test code to check if I can reproduce this.
> >
>
> It seems to work for me. Consider this small example :
>
> moveq #0,d0
> moveq #0,d1
> moveq #0,d2
>
> moveq #1,d1
> moveq #2,d2
> moveq #3,d3
>
> nop
>
> attached is the resulting .prg.
>
> Now, run hatari and press alt+pause to enter debugger when gem desktop
> appears for example.
>
> Load the program at address $40000 for a quick test :
>
> loadbin debug.prg $40000
>
> set 2 breakpoints at $40022 and $40028 and set pc=$4001c :
>
> a $40022
> a $40028
> r pc=$4001c
>
> This is the code in RAM :
>
> $0004001c : 7000 moveq #0,d0
> $0004001e : 7200 moveq #0,d1
> $00040020 : 7400 moveq #0,d2
> $00040022 : 7201 moveq #1,d1
> $00040024 : 7402 moveq #2,d2
> $00040026 : 7603 moveq #3,d3
> $00040028 : 4e71 nop
>
> Type 'r', you can see that d0/d1/d2/d3 have various non null values
>
> Now type 'c', program will run from $4001e until breakpoint at $40022 ->
> -> d0/d1/d2 are correctly set to '0'
>
> Skip instr at $40022 by changing PC
> > r pc=$40024
>
> type 's' to continue and execute only 1 instruction and type 'r' after.
>
> > s
>
> CPU=$40026, VBL=2862, FrameCycles=2480, HBL=4, LineCycles=432, DSP=N/A
> $00040026 : 7603 moveq #3,d3
> > r
> D0 00000000 D1 00000000 D2 00000002 D3 00000000
>
> So, only D2 was changed (by instruction at PC=40024) and program goes
> back to debugger correctly with PC=$40026.
> -> The 1st instruction at the new PC was correctly executed.
>
> Can you try this ? I checked with 68000 cpu, do you use 68030 ?
>
> This requires hatari 2.1, as 2.0 could have prefetch issue when changing PC.
>
>
> Nicolas
>
>
>
>
>
>
> moveq #0,d0
> moveq #0,d1
> moveq #0,d2
>
> moveq #1,d1
> moveq #2,d2
> moveq #3,d3
>
> nop
>