When loading symbol files, strip leading numbers from names using the

number.name convention (which seem to be pass #'s for DASM).  Initially
having this info in Stella was simply visually inconsistent, but now
it also interferes with recompiling when saving the disassembly (IOW,
the data put into the symbol file by DASM can't be fed back into DASM
again in these cases).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2803 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2013-08-20 14:29:28 +00:00
parent f02995b485
commit 4ef0416e26
2 changed files with 21 additions and 5 deletions

View File

@ -18,13 +18,19 @@
and old state files will not work with this release. and old state files will not work with this release.
* Several bugfixes and improvements to the debugger: * Several bugfixes and improvements to the debugger:
- Improved display of debugger when using larger video modes. There
are now three font sizes, which are automatically selected when
the debugger is sized accordingly. When using larger fonts, the
space is now used more efficiently.
- Fixed bug in disassembly when the mirror used for the current - Fixed bug in disassembly when the mirror used for the current
PC didn't match the mirror for the current bank. In this case, PC didn't match the mirror for the current bank. In this case,
the disassembler became confused and didn't properly track the the disassembler became confused and didn't properly track the
PC address. PC address.
- Fixed bug in display of current TIA frame in the UI; depending on - Fixed bug in display of current TIA frame number in the UI;
how breakpoints were set, it was sometimes off by one. depending on how breakpoints were set, it was sometimes off by
one.
- Fixed RAM widget Search/Compare textboxes; entering any data and - Fixed RAM widget Search/Compare textboxes; entering any data and
then pressing 'Enter' / clicking 'OK' locked the UI until exiting then pressing 'Enter' / clicking 'OK' locked the UI until exiting
@ -53,7 +59,8 @@
- Removed 'loadsym' command from the debugger prompt, since the - Removed 'loadsym' command from the debugger prompt, since the
DASM symbol file is always loaded anyway, making the command DASM symbol file is always loaded anyway, making the command
redundant. redundant. Related to this, fixed loading symbols with
###.name convention; the leading number is now stripped.
- Added support for DASM lst files (created with the -l option). - Added support for DASM lst files (created with the -l option).
For now, the contents are only partially used, to detect For now, the contents are only partially used, to detect
@ -64,7 +71,10 @@
background pixels as either blanked or with the underlying object background pixels as either blanked or with the underlying object
colour, instead of always being black. This gives a more accurate colour, instead of always being black. This gives a more accurate
representation of how the registers are actually drawn onscreen. representation of how the registers are actually drawn onscreen.
Thanks to Tjoppen of AtariAge for this idea and the actual code. Thanks to Tjoppen of AtariAge for this idea and sample code.
- The 'Source Address' locations for the CPU registers now show
labels when appropriate.
* Renamed 'Override properties' dialog (accessible from the ROM * Renamed 'Override properties' dialog (accessible from the ROM
launcher by a right-mouse-button click) to 'Power-on options', with launcher by a right-mouse-button click) to 'Power-on options', with

View File

@ -828,9 +828,15 @@ string CartDebug::loadSymbolFile()
// For now, we simply ignore constants completely // For now, we simply ignore constants completely
AddrToLabel::const_iterator iter = myUserCLabels.find(value); AddrToLabel::const_iterator iter = myUserCLabels.find(value);
if(iter == myUserCLabels.end() || !BSPF_equalsIgnoreCase(label, iter->second)) if(iter == myUserCLabels.end() || !BSPF_equalsIgnoreCase(label, iter->second))
{
// Check for period, and strip leading number
if(string::size_type pos = label.find_first_of(".", 0) != string::npos)
addLabel(label.substr(pos), value);
else
addLabel(label, value); addLabel(label, value);
} }
} }
}
in.close(); in.close();
myDebugger.rom().invalidate(); myDebugger.rom().invalidate();