fceux
fceux copied to clipboard
Debugger bugs
I have encountered few bugs in the debugger:
- Breakpoints and address bookmarks are not saved
- Symbolic debug naming dialog cannot be opened on zero page addresses. You can still get the symbolic name there if you go to the RAM area in the debugger and set it there, but it's a bit inconvenient to do that way. Also the symbolic name is displayed in a strange manner in indirect addressing modes. Current
LDA ($5A symbolic_name),Y @ $000D = #$00
, and what I think would look betterLDA ($5A),Y symbolic_name @ $000D = #$00
These were encountered on FCEUX mscv 1916 x64 release on Windows 10 x64
This issue is on the Qt/SDL version?
How can I check that? I didn't see Qt or SDL mentioned in the 'About' window
If the help menu doesn't have an "About Qt" item. Then you are not using the Qt/SDL version. I recommend giving the win64 Qt/SDL development build a try. The debugger has changed a bit in the Qt/SDL version. You might like it better.
2. Current
LDA ($5A symbolic_name),Y @ $000D = #$00
, and what I think would look betterLDA ($5A),Y symbolic_name @ $000D = #$00
Actually, these lines have two different meanings.
LDA ($5A symbolic_name),Y @ $000D = #$00
means that $5A
has name symbolic_name
,
LDA ($5A),Y symbolic_name @ $000D = #$00
means that $0D
has name symbolic_name
.
Line can contain both of them:
Symbolic debug naming dialog cannot be opened on zero page addresses.
Seems like it can't be opened for zero-page addresses when the address already has some symbolic name. I'll check it.
I did some tests.
ORA $01
- dialog cannot be opened
ORA $02,X
- dialog can be opened only if the address does not already have a name
AND $03
- dialog cannot be opened
AND $04,X
- dialog can be opened only if the address does not already have a name
EOR $05
- dialog cannot be opened
EOR $06,X
- dialog can be opened only if the address does not already have a name
ADC $07
- dialog cannot be opened
ADC $08,X
- dialog can be opened only if the address does not already have a name
STA $09
- dialog cannot be opened
STA $0A,X
- dialog can be opened only if the address does not already have a name
LDA $0B
- dialog cannot be opened
LDA $0C,X
- dialog can be opened only if the address does not already have a name
CMP $0D
- dialog cannot be opened
CMP $0E,X
- dialog can be opened only if the address does not already have a name
SBC $0F
- dialog cannot be opened
SBC $10,X
- dialog can be opened only if the address does not already have a name
ASL $11
- dialog cannot be opened
ASL $12,X
- dialog can be opened only if the address does not already have a name
ROL $13
- dialog cannot be opened
ROL $14,X
- dialog can be opened only if the address does not already have a name
LSR $15
- dialog cannot be opened
LSR $16,X
- dialog can be opened only if the address does not already have a name
ROR $17
- dialog cannot be opened
ROR $18,X
- dialog can be opened only if the address does not already have a name
STX $19
- dialog cannot be opened
STX $1A,Y
- dialog can be opened only if the address does not already have a name
LDX $1B
- dialog cannot be opened
LDX $1C,Y
- dialog can be opened only if the address does not already have a name
DEC $1D
- dialog cannot be opened
DEC $1E,X
- dialog can be opened only if the address does not already have a name
INC $1F
- dialog cannot be opened
INC $20,X
- dialog can be opened only if the address does not already have a name
Dialog can't be opened when there is a space after a two-digit address
Because of this check: https://github.com/TASEmulators/fceux/blob/a75c27d517cf8a166e2968918a5846a6d80d84df/src/drivers/win/debugger.cpp#L1713
Need to improve address validation code.
Please try the latest dev build at commit https://github.com/TASEmulators/fceux/commit/132e062d777b193f5d6be4c992ae0bc8eaa84b4d.