Commits (19)
-
John Ballance authored
Detail: *Showregs now indicated module name and offset if address is in a module Admin: (highlight level of testing that has taken place) (bugfix number if appropriate) Version 1.88. Tagged as 'Debugger-1_88'
d2d75ad1 -
Jeffrey Lee authored
Detail: s/Debugger - Fix some broken logic in *ShowVFPRegs that was causing the FPSCR vector length fields to be reported incorrectly if vector stride was enabled Admin: Tested on Raspberry Pi Version 1.89. Tagged as 'Debugger-1_89'
34aa3112 -
Robert Sprowson authored
Largely inspired/ripped off from the DebugTools module, but using OS_DynamicArea 20 for the bulk of area searching. The address to lookup goes through the usual parser for Debugger commands so can be a hex address/register/implied exception PC if no arguments given. Removed limited lookup from *ShowRegs command; this wasn't especially useful being hardwired to PC since only data aborts have a valid PC, normally the other registers are more interesting. Fix miscapitalisation of ShowVFPRegs syntax (presumably to avoid it using Token0) by adding a DictTokens directive, since the syntax is used by code in the module which doesn't work with Token0. Split German messages out into CmdHelp/Messages. Tested in an IOMD ROM build with various edge cases. Version 1.90. Tagged as 'Debugger-1_90'
be5b800a -
Jeffrey Lee authored
Detail: actions/ARMv7_ASIMD - The instruction is VSRI, but the disassembly was stating VRSI. Fix. Admin: Untested Issue reported by Fred Graute: https://www.riscosopen.org/forum/forums/4/topics/3956 Version 1.91. Tagged as 'Debugger-1_91'
7d3b9924 -
Jeffrey Lee authored
Detail: This set of changes adds support for the following features: * A new code system variable, Debugger$DumpOptions, to control whether exception/crash dumps are collected from SeriousErrorV and where they should be output * Dump output can be in raw (binary) or annotated (text) form. * Annotated form provides detailed annotation of the stack(s), detecting certain constructs such as SWI invocations, IRQsema frames, CMHG veneers, APCS stack frame chains, and most forms of assembler function calls. The output isn't as easy to understand as a proper stack backtrace would be, but the low-level nature allows it to cope with corrupt or partially-overwritten stack frames, and avoids making invasive changes to components in order to make them backtrace-friendly * Stack annotation is able to make use of embedded ROM debug symbols (to be supported by romlinker 0.06) and Norcroft-style embedded function names in order to provide function-level location information for most ROM components and applications * System variables Debugger$RawFile and Debugger$AnnotatedFile to specify where to save raw and annotated exception dumps (preliminary, approach may change in future) * As well as supporting saving to file, the exception dumps can also be sent to the HAL via HAL_DebugTX, or if a program is driving SeriousErrorV directly it can use SeriousErrorV_CustomReport to have it fed to a custom callback function The code is structured in such a way that the core dump annotation code can potentially be built into a standalone application to allow offline processing of dumps (offline application not part of this checkin) File changes: c/exc, h/exc - Core code for producing the annotated exception dumps hdr/ExcDump - Header detailing the format of the binary dump s/ExceptionDump - Code variable and SeriousErrorV handling. Several support calls (used by c/exc) are also implemented here, in order to separate the dump processing from any interrogation of the originating machine Makefile - Updated for c/exc inclusion, and C header generation from hdr/ExcDump Resources/UK/Messages, Resources/Germany/Messages - New messages used by exception dump code c/support - Add a strcmp implementation, and extend vsprintf to be vsnprintf. Add support for string width format specifier. s/Debugger - Workspace definitions and init/shutdown hooks for exception dump code. Refactor *Where so that the locate logic is separate from the message output logic, to allow the locate logic to be used by the exception dump code. Admin: Tested on Raspberry Pi German messages in need of translation Version 1.92. Tagged as 'Debugger-1_92'
5e1d6cfb -
Jeffrey Lee authored
Detail: c/exc - The error message was being shoved into a 64 byte buffer, causing truncation. Rather than making the buffer bigger (trying to keep stack usage to a minimum), bypass the buffer and write the message straight to the output. Also add an extra newline at the end of DescribeBlocks so that the output doesn't run directly into the annotated R15/R14 that are output by AnnotateAll. Resources/Germany/Messages, Resources/UK/Messages - Update EXC_MSG_ERROR (X18) for the above. Remove Debugger$RawFile and Debugger$AnnotatedFile hint text from Debugger$DumpOptions syntax error message - CopyError wasn't causing the magic newline codes to be translated, and the error buffer (aka StringBuffer) is too small for such a long message anyway. Admin: Tested on Raspberry Pi Version 1.93. Tagged as 'Debugger-1_93'
98350188 -
Robert Sprowson authored
Line 332: Fix typo in R13_hyp table entry (was R12) Line 158: A missing comma meant the arch warning table was one entry too short, so any XScale media instructions would cause a NULL pointer access actions/ARMv7 Add missing pre-UAL forms of LDRHT LDRSBT LDRSHT STRHT, assuming they take the form [LD|ST]RccSUFFIX Fix decoding of banked MRS/MSR SYSm field, this is defined as m:m1, so m needs shifting up more Fix opcode for banked MSR, copy paste fumble Tested using 'testbed', not tagged.
9350c823 -
Robert Sprowson authored
ARMv6.s Add missing conditionals on DBG. Add ERET (v7VE). Add MRS/MSR banked (v7VE), and its funky encoding of the banked register. Check bit 22 of SRS/RFE properly, otherwise some undefined instructions get wrongly decoded as SRS/RFE. CGlue.s Use prefix 'A' for arch warnings, so they can be kept together in the messages file. Debugger.s: Around line 990, refactor up front decoding to pick out NV instruction space like the ARM ARM says to do. This makes subsequent decoding much simpler to follow, and removes lots of backdoor checks on bits 28-31 scattered later on in the decode - fixes problem with CPS #mode being wrong when bit 4 set. Add HVI (v7MP). Note this is a made up pre-UAL form of HVC (cf. SWI->SVC, SMI->SMC) for now. Add PLDW (v7VE). Put back flags preservation on Conditions routine, otherwise TestStr preserves flags if no conditions are wanted, but doesn't if they are - was causing some of the Saturates family to be misclassified as undefined. Test/V6V7tests Add samples of each of the extra instructions. Resources/UK/Messages, Resources/Germany/Messages Messages files updated. Tested with 'testbed' over the 256M EQ condition code, plus 256M NV condition code, with no unexplained mismatches. Version 1.94. Tagged as 'Debugger-1_94'
fb639a5b -
Robert Sprowson authored
Module_Title->Module_TitleStr from Kernel-5_54. Version 1.95. Tagged as 'Debugger-1_95'
012dae05 -
Robert Sprowson authored
Move the disassembler bits out of the main debugger module. Built, but not tested. Version 1.95. Not tagged
c8be9de2 -
Robert Sprowson authored
Reinstate the check that an immediate value that doesn't use the preferred encoding is disassembled to #value,ror such that reassembling it would give you back the original op code. Tested with a handful of values, plus inspected all duplicates possible in Excel. Version 1.96. Tagged as 'Debugger-1_96'
d8cf3817 -
Robert Sprowson authored
Three instructions, MIA/MAR/MRA, 14 years late. Version 1.97. Tagged as 'Debugger-1_97'
3d2718aa -
Robert Sprowson authored
Opcodes for CRC32/HLT/SEVL/LDA/STL/LDAEX/STLEX and DMB/DSB options. Makefile: Add ARMv8_AArch32 actions and encodings to dis2. actions/ARMv7,dis2.h: Extend the DMS/DSB decoding to warn about ARMv8 specific ones (previously undefined) ARM.s/ARMv6.s: Slot in decode. CGlue.s/Debugger.s/Messages New token for "ARMv8 or later" warnings. Tested by brute force all 256M instructions in NV space and 256M conditionals, comparing the output against dis2. Currently missing the new VFP and SIMD opcodes. Version 1.98. Tagged as 'Debugger-1_98'
0715cd51 -
Jeffrey Lee authored
Submit new decgen cache file; addition of ARMv8 encodings invalidated the old one. Should result in quicker build times. Version 1.98. Retagged as 'Debugger-1_98'
517f38bb -
Jeffrey Lee authored
Cache file update, take two. First attempt seemed to be invalid (bug when restarting tree generation?) Version 1.98. Retagged as 'Debugger-1_98'
2b8b6858 -
Robert Sprowson authored
We don't need to invent a pre-UAL variant of HVC, since BASIC accepts HVC with or without the #. Replace made up HVI with HVC. Version 1.99. Tagged as 'Debugger-1_99'
c8864df0 -
Robert Sprowson authored
It just gives a bad SWI error since VFPSupport is missing. In practice this is IOMD and Tungsten platforms, at least in the absence of a VFPEmulator. Version 2.00. Tagged as 'Debugger-2_00'
dbeeb0b7 -
Jeffrey Lee authored
Detail: c/ExceptionDump - Disable unused ExcLooksLikePSR() function. Fix DescribeBlocks() printing the wrong indices for OS_Memory 16 items. Make AnnotateAll() attempt to unwind the ABT/UND stack if the abort came from that mode. Fix some cases where empty lines used for formatting were missing. Resources/UK/Messages, Resources/Germany/Messages, s/ExceptionDump, h/exc - Add message tokens X25 & X26 for the ABT & UND stack headers. Admin: Tested on BB-xM German messages in need of translation Version 2.01. Tagged as 'Debugger-2_01'
adb4bab6 -
Jeffrey Lee authored
Detail: actions/ARMv8FP_AArch32, Makefile - Add disasembly for the ARMv8 VFP/NEON instructions actions/ARMv7_ASIMD, actions/ARMv7_VFP - Fix incorrect disassembly of VCLS, VMOVN, VRSUBHN, VFNMA, VFNMS c/util - Add disassembly for MVFR2 register s/ARM - Tweak coprocessor instruction decoding logic; ARMv8 uses some of the CDP2 instructions for VFP/NEON cache/vfp - Updated decgen cache file Test/c/testbed - Improve fopen/system error checking. Add some more rules to deal with (expected) differences between Debugger/dis2 and decaof. Admin: Tested on Raspberry Pi 3 Disassembly for new instructions (+ some nearby values) checked against BASIC 1.74 + decaof 5.18 Requires Library-1_92 Version 2.02. Tagged as 'Debugger-2_02'
6eee6524
Showing
Resources/Germany/CmdHelp
0 → 100644
File added
No preview for this file type
No preview for this file type
No preview for this file type
Test/WackyShifts,ffb
0 → 100644
File added
actions/ARMv8FP_AArch32
0 → 100644
actions/ARMv8_AArch32
0 → 100644
c/exc
0 → 100644
This diff is collapsed.