Commit graph

276 commits

Author SHA1 Message Date
JetSetIlly
121d5f9cd6 fixed callstack/callers output 2023-09-23 08:57:00 +01:00
JetSetIlly
749940cad9 function name shown in coproc disasm tooltip 2023-09-23 08:55:27 +01:00
JetSetIlly
9e332bd4d6 improved coprocessor registers window. can set registers from window
added TIM2 group to ARMv7-M extended registers specification
2023-08-26 09:14:54 +01:00
JetSetIlly
b822a49225 sketched in coprocessor registers window 2023-08-20 18:25:25 +01:00
JetSetIlly
74c3457406 coprocessor interface will return extended registers spec
ammended COPROC REGS function to use new spec system. FPU registers
display formatted values

removed RegisterStatus() function for now. the ARM status register is
more complex in reality than how I've modelled it (CSPR vs ASPR and and
an ESPR in some models). the information is there but not in a coherent
way. probably requires adding a status register group
2023-08-20 18:25:25 +01:00
JetSetIlly
a9c64def68 correct check for .debug_info section in DWARF loading 2023-08-15 15:24:59 +01:00
JetSetIlly
17aff38d51 general tidy up. developer source ranges in particular 2023-08-14 20:28:51 +01:00
JetSetIlly
f81b237ee6 added []uint8 as a supported type for DW_AT_const_value 2023-08-14 20:28:51 +01:00
JetSetIlly
aacea11fdb simplified coprocessor interfaces 2023-08-09 15:26:05 +01:00
JetSetIlly
2d02764e60 moved coprocessor interface/types from mapper to coprocessor package
there could be more work to do here to make this more readable
2023-08-09 15:26:05 +01:00
JetSetIlly
9b86b88440 simplified CoProcRead* instructions to CoProcPeek 2023-08-09 15:26:05 +01:00
JetSetIlly
4956c10ad5 corrected register labelling in FPU disassembly
added stack NOP operation support for DW_OP_piece
2023-08-07 13:50:55 +01:00
JetSetIlly
4d8daab44d implemented DW_OP_bregx, DW_OP_implicit_value and DW_OP_eq etc. 2023-08-07 10:25:21 +01:00
JetSetIlly
dda0dad869 support for DWARF variables with constant value attribute 2023-08-07 10:25:21 +01:00
JetSetIlly
064b81f5ac corrected how composite members are addressed
previously I was using the composite member size and adjusting the
address accordingly. this is wrong however and doesn't take into account
the alignment required by the processor

the correct method is to use the Member Location attribute to offset
from the base address of the composite
2023-08-06 19:54:37 +01:00
JetSetIlly
d87740752f added COPROC STEP command 2023-08-04 20:23:42 +01:00
JetSetIlly
fdafaa855f commentary for borrow/lock functions 2023-08-03 06:53:35 +01:00
JetSetIlly
c6d7147048 added SetEmulationState() to developer package
this called in the same way as the corresponding functions in the
television and reflection packages

list of locals is updated when emulation is paused. this allows the list
of locals to be visible immediately on program start and when execution
is halted in the VCS part of the execution (as opposed to yielding in
the ARM part of the execution due to a breakpoint)

fixed race condition caused by local variable window
2023-08-01 18:02:13 +01:00
JetSetIlly
61d7403c8f breakable addresses are collated for each source line
the detail I was missing previously was the possibility that a single
line can have multiple break addresses suggested by the .debug_line
section
2023-08-01 18:02:13 +01:00
JetSetIlly
68338fd993 local variables are listed even if they are not locatable
lexical scope is used to decide if the variable is present in the list.
while this might not be completely accurate in all instances it presents
a more natural view. in any case, the value of the variable won't be
wrong because it isn't locatable
2023-08-01 16:52:13 +01:00
JetSetIlly
d350a2fddf more flexible method of locating ELF file 2023-07-31 08:57:41 +01:00
JetSetIlly
6cc1d4a9a4 support for type conversion to more natural representation 2023-07-31 08:57:41 +01:00
JetSetIlly
3f6bd27324 modal dialog warning that non-supported DWARF data is being used
improved how modal dialogs are handled
2023-07-31 08:57:41 +01:00
JetSetIlly
9f79e8b2d1 implicit relocation of .dwarf_frame for ACE 2023-07-31 08:57:41 +01:00
JetSetIlly
eccfb5872d version check for DWARF. only version 4 supported for now 2023-07-31 08:57:41 +01:00
JetSetIlly
4830799c71 implementation of remaining frame instructions
corrected endianess of multibyte frame instructions
2023-07-31 08:57:41 +01:00
JetSetIlly
a815f9c6ae improved terminal output for DWARF LOCALS command 2023-07-31 08:57:41 +01:00
JetSetIlly
8a93f5b404 framebase derivation output
improved display of error messages in local variable tooltip
2023-07-29 14:21:53 +01:00
JetSetIlly
cddb2efba1 corrected DW_OP_regx. unsigned LEB value not signed
stipulated that the coprocessor takes extended register values in the
Register() and SetRegister() functions. extended register check in
coprocessor implementation (ie. ARM)
2023-07-29 14:21:53 +01:00
JetSetIlly
c3998ad9e8 corrected lexical scope for local variables 2023-07-29 14:21:52 +01:00
JetSetIlly
bccc2d49c7 more accurate allocation of functions to source lines 2023-07-28 06:03:58 +01:00
JetSetIlly
ad1ae65977 corrected optimisation flag detection 2023-07-28 06:03:58 +01:00
JetSetIlly
ee9b593c84 added ARM specific method for finding entry function 2023-07-28 06:03:58 +01:00
JetSetIlly
59e4b373f6 removed DisableExpensive() from developer package
it's added complexity for very little performance gain
2023-07-28 06:03:58 +01:00
JetSetIlly
b5a7a6f884 removed "ROM Setup" from coprocessor profiling
"ROM Setup" is too confusing a state to be useful. Initialisation, based
on the current emulation state, might be more helpful but it fails for
the same reason as "ROM Setup" (which was based on screen stability) in
that it doesn't really fit in with the current method of keeping
profiling statistics

renamed KernelVCS (from profiling package) to Focus. this better
describes what the intention of the type is

renamed Performance window to Profiling
2023-07-28 06:03:58 +01:00
JetSetIlly
e462abcfa8 moved coprocessor/developer illegalAccesses into dedicated faults package
renamed references to illegal accesses to faults. the new name is
simpler and more flexible

faults locking was already independent of source lock

single MemoryFault() function in coproc developer interface

simplified faults window
2023-07-28 06:03:58 +01:00
JetSetIlly
0beb133bbe moved obsolete mapfile code into a dedicated package 2023-07-28 06:03:58 +01:00
JetSetIlly
784143f920 moved coprocessor/developer yield into dedicated package
yield locking was already independent of source lock
2023-07-28 06:03:58 +01:00
JetSetIlly
00a941b8c7 moved coprocessor/developer breakpoints into dedicated package
breakpoint locking independent of source lock
2023-07-28 06:03:58 +01:00
JetSetIlly
82ab2d4568 moved coprocessor/developer callstack into dedicated package
callstack locking independent of source lock
2023-07-24 16:11:48 +01:00
JetSetIlly
e5045458cf coprocessor/developer package refactor
after work on callstack in the previous commit it became more apparent
than ever that this package needs a major refactor in order to improve
clarity
2023-07-24 16:11:48 +01:00
JetSetIlly
f1b019f45b work on improving callstack in the developer package 2023-07-24 16:11:48 +01:00
JetSetIlly
5dec469873 better path handling for developer package
if the source files are in a different path to the ROM file, the
longest common path is discarded for presentation
2023-07-19 20:34:28 +01:00
JetSetIlly
020ca25f50 corrected ARM breakpoint detection after a branch
because of how we have implemented branches we need special
consideration for breakpoints afterwards. the branch instruction will
have altered the PC and adjusted it for the pipeline fill (cycle
accumulation for the pipeline fill is handle indpendently). because of
that we need to test for a breakpoint for the PC before the pipeline
fill
2023-07-19 20:34:28 +01:00
JetSetIlly
81f4a83490 more flexible yield information 2023-07-17 15:50:07 +01:00
JetSetIlly
1818c3cf59 corrected 7ff8013d6 for non-ACE cartridges
cartridge mappers that don't implement the mapper.CartCoProcNonRelocatable
interface (CDF, DPC+) were having DWARF addresses adjusted incorrectly
2023-07-12 15:44:43 +01:00
JetSetIlly
7ff8013d69 corrected placement of non-relocatable source code relative to executable memory
this primarily affects ACE files and corresponding ELF/DWARF data
2023-07-11 08:24:17 +01:00
JetSetIlly
732c433cd2 tidied and simplified test package 2023-07-06 13:49:18 +01:00
JetSetIlly
d44a979a99 nil check for absent .debug_loc section in DWARF builder 2023-06-21 21:41:20 +01:00
JetSetIlly
12061a4aaa added DWARF CALLERS command 2023-06-14 19:06:24 +01:00