![]() |
![]() |
#21 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Exactly.
Added also break when new stack frame is added (BSR/JSR) or when removed. It does both checks because without RTS check, it is possible to accidentally return from deep subroutine stack if it never does another BSR/JSR until after 5+ RTS instructions. Also supervisor mode stack frames are now supported. (Exception/RTE) I am running out of ideas. Feedback is needed. |
![]() |
![]() |
#22 | |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
Quote:
|
|
![]() |
![]() |
#23 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Sounds useful but i'd prefer to have symbols in some already existing format. Unfortunately hunk_debug does not have any extra fields to describe type of the symbol..
|
![]() |
![]() |
#24 | |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
Quote:
It's a bit of a hassle as in my case the symbols are for code loaded from a raw binary blob off the ADF that then gets relocated by my bootloader. So it only works if the symbols match the destination of the relocation. |
|
![]() |
![]() |
#25 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
What if symbols can be loaded on the fly? (By writing them to some magic address etc..)
|
![]() |
![]() |
#26 |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
I guess for me it all depends where they come from. I have a system friendly version of my game I can use to debug 99% of bugs. It’s only the low level stuff I’d normally debug these days in my track loaded version (like the track loader itself). Most of this kind of stuff won’t have gcc compatible symbols any time during the build and will only briefly have vasm:vlink symbols when they are object files before they are converted to raw binary blobs during linking.
|
![]() |
![]() |
#27 |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
The other handy feature I added to my fs-uae debugger is gnu readline. I know we have command history in win-uae, but I added all the symbols to it’s tab-completion list. So you can start typing a symbol name then hit tab and either have it complete or get a list of matching symbols. Use it all the time,
|
![]() |
![]() |
#28 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,351
|
Not specifically related to recent debugger improvements, but...
Pressing Shift-F12 when in D3D11 full-screen mode isn't handled well. The GUI debugger window can be maximised but not resized. There's a resizing handle at the bottom right, but you can't adjust window size. It would be nice if the disassembly could be a little closer to "proper" M68K assembler syntax. So for example: - JSR (-$19E,A6) instead of JSR (A6, -$019e) - MOVEQ #0,D6 instead of MOVE.L #$00,D6 (same for ADDQ/SUBQ) - BRA.B instead of BT .B |
![]() |
![]() |
#29 |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
I just tested out the latest version (I was running a couple of versions behind), now I get a breakpoint on a word read from 00000000 (I think) each time an audio channel is used for the first time since reboot. I say this as the CPU has no instructions even close to accessing 0 and the time it breaks.
I get the breakpoint from the P61 playback routines as well as from my independent 4th channel sfx routines. Once the breakpoint is hit once (and I am guessing that audio channel is primed or something), I can run the app again and it will not break. Is this expected (ie: is there a bug in my code or the P61 replay routines)? |
![]() |
![]() |
#30 | ||||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Quote:
Quote:
Quote:
Quote:
Basically it is same (but not exactly same) as copper jump side-effect, DMA pointer reset is delayed by one DMA access. I'll filter out those kind of "invalid" accesses soon.. |
||||
![]() |
![]() |
#31 | |
Registered User
Join Date: Mar 2016
Location: Australia
Posts: 936
|
Quote:
![]() Slightly OT, I use the serial port for outputting debug prints, is it possible with the TCP option to configure it to use a higher port ? At the moment I have to run WinUAE as admin to get this to work ? |
|
![]() |
![]() |
#32 | |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
Quote:
amiblitz and gcc can create amiga os standard debug hunks too. I like test how that work, but please can you give a step by step example how can load in a amiga program and debug it ? I read JIt must be off, thats no problem when have later a ryzen 2 i tink. it only should work at least in 68020 with FPU in fastest possible mode. does this the new debug code ?. |
|
![]() |
![]() |
#33 | |||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Quote:
Quote:
uaedbg <program name> <program params> (note that there is still something wrong with parameter passing, some programs don't get correct parameters) Debugger will break automatically when program's first instruction is going to be executed. Quote:
|
|||
![]() |
![]() |
#34 |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
I think a gui is not need in the form as it is in current winuae GUI debugger. to avoid type commands there can be add another window that have buttons to click and the commands are add in the main console window. and when a memory or disasm dump want do, this can output to another console window so the main console window can show always the trace instruction display and for insert debugger commands. also register output can do to another console window
|
![]() |
![]() |
#35 |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
I test this version and i notice that CTRL+F12 switch from fullscreen to window mode not work, it quit winiae. only I boot with a Full HD monitor and full HD resolution with Full Window Mode. no uaedbg use for trest. when then press the hotkey it quit winuae. use the winuae gue and change full window to window mode, work ok. when in window mode press CTRL+F12 to switch back to full window, too quit winuae. I use newest win 10 64
|
![]() |
![]() |
#36 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Quote:
|
|
![]() |
![]() |
#37 |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
with offical newest winuae in 64 bit CTRL+F12 quit screen and reopen it and do nothing change or sometimes crash. only when i switch to window mode in GUI then a window with borders come at position half X half Y full from HD resolution. i can send dmp file from offical version, if you think its usefull
|
![]() |
![]() |
#38 |
Registered User
Join Date: Jul 2005
Location: -
Posts: 1,704
|
|
![]() |
![]() |
#39 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,603
|
Quote:
![]() But some of the differences are due to not doing extra any conversions, simple direct decoding it, for example BT is technically correct (Bcc + True condition = BT, BRA is only a nice alias) I already "translated" most useless variants, for example MOVEM which was originally something like MVMEL and MVMLE #value,.. Which was done most likely because MOVEM to memory and MOVEM from memory are actually different op codes (from UAE emulation point of view because they don't implement same addressing modes) and registers are encoded as immediate word, same as MOVE.W #xxxx uses) Same with other special instructions, instructions that only implement very limited addressing modes or have side-effects and have different "from" and "to" opcode variants (MOVEP, MOVE SR/CCR etc..), UAE disassembler requires them to have different "internal" unique opcode because disassembler opcode is same as instruction emulation opcode function name. Unless extra translation is added. MMU/FPU instructions (that aren't properly supported in debugger) are even worse because they don't use normal addressing/register bits. |
|
![]() |
![]() |
#40 |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
JIT off and window mode. I do somne tests with uaedbg. first i start uaedbg amiblitz and winuae open a windows shell window that fast close and reopen around 30 sec. it is notice as flickering. then the debugger window come. when i press t the flicker happen again
now i try a simple program it is the amiga enforcer testprogram lawbreaker(contain symbols). then winuae opens a windows shell window once and show cant load amiga.lib and unknown hunk id $3f1 winuae continue to work. seem because of hunk id $3f1 uaedbg is not start. what can do ? where can get amiga.lib and where i need put this ?. amiga.lib is a linker library. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Debugger updates (was: WinUAE Debugger HH PC history) | selco | support.WinUAE | 8 | 14 March 2018 22:27 |
Hacking the fs-uae console debugger | alpine9000 | Coders. Asm / Hardware | 1 | 28 March 2016 16:45 |
Added SegTracker to FS-UAE's Debugger | lallafa | support.FS-UAE | 7 | 16 January 2016 11:03 |
Amiga Segment!!! :) :) | blade002 | Amiga scene | 8 | 08 October 2015 15:00 |
SAS/C: Undefined symbols | Yesideez | Coders. C/C++ | 14 | 13 February 2014 16:36 |
|
|