09 April 2024, 22:44 | #1 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,835
|
Memwatch not working for dff088
I set a watchpoint like this w 1 dff088 2 all using an A500 config 1.3 KS launched a game and it is not trapped and stop what am I missing ?
|
09 April 2024, 23:35 | #2 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,436
|
Are you sure the game actually uses COP1JMP?
While many programs will explicitly strobe COP1JMP to (re)start the Copperlist at the pointer in COP1LCH & COP1LCL, this is not actually necessary. When Copper DMA is active, the Copper will automatically jump to the pointer contained in COP1LCH/COP1LCL at the start of each vertical blank. So, it is possible that the game you're trying to analyse does not strobe COP1JMP, which would mean the watchpoint will never trigger. |
09 April 2024, 23:49 | #3 |
Going nowhere
Join Date: Oct 2001
Location: United Kingdom
Age: 50
Posts: 9,016
|
Maybe WinUAE gets confused because doesn't writing to $dff088 trigger a READ first then a WRITE?
|
10 April 2024, 07:43 | #4 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,359
|
it should work, unless the copper itself writes to this register. watchpoints only watch writes from CPU.
- ensure JIT is off - make a simple test where you write into the register with the CPU, see what happens |
10 April 2024, 09:19 | #5 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,553
|
Watchpoints can also watch DMA channels or reads only or writes only. Default is CPU only + RWI (any CPU access, including instruction prefetch).
Append "all" to enable all modes. (or "cop" for copper only, "blt" for blitter only, "blta" for blitter A only etc) |
10 April 2024, 09:43 | #6 |
German Translator
Join Date: Aug 2018
Location: Drübeck / Germany
Age: 49
Posts: 193
|
memwatch works fine (CPU only is the default)
tested: w 1 dff088 2 also w 1 dff088 2 W >w 1 dff088 2 W 1: 00DFF088 - 00DFF089 (2) W CPU Memwatch 1: break at 00DFF088.W W 000028F6 PC=00022D28 CPUDW (000) 1. also COP memwatch should work: >w 1 dff000 200 COP 1: 00DFF000 - 00DFF1FF (512) RWI COP But how to find the copper instruction, what causes the break? >g Memwatch 1: break at 00DFF094.W W 000000D0 PC=00FC0F90 COP (08c) VPOS: 043 ($02b) HPOS: 115 ($073) COP: $0001edc2 ; it's dc.w $94,$d0 >o 1edc2 1 *0001edc2: 0000 010a ; BLTDDAT := 0x010a 2. and what makes a memwatch DMA validator? >wl Memwatch DMA validator enabled >wlo Memwatch DMA validator disabled |
10 April 2024, 10:00 | #7 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,359
|
I learned something, didn't know that you could break with blitter or copper. Very useful!!
Someone should create a proper doc for debug one of those days. So many unknown yet useful features! |
10 April 2024, 18:46 | #8 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,835
|
True
|
10 April 2024, 19:37 | #9 | |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,835
|
Quote:
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Using Memwatch with VBCC? | Warty | Coders. C/C++ | 3 | 23 January 2022 17:44 |
vbcc memwatch, debugging, symbols | carrion | Coders. C/C++ | 8 | 17 April 2021 11:43 |
Memwatch functions in Action Replay III don't work in WinUAE | Galahad/FLT | support.WinUAE | 12 | 11 May 2014 13:42 |
Memwatch+Arcadia | thor | support.WinUAE | 4 | 28 December 2013 17:28 |
Winuae - (debugger) Memwatch Problem | barny | support.WinUAE | 2 | 03 October 2005 12:30 |
|
|