Detached Solutions Title

Command Post Home Page : Crash Guard - Special Topics

Crash Guard - Special Topics

Crash Guard is the unique crash recovery technology utilized by Command Post. With Crash Guard installed, you are given the chance to recover important debugging information before resetting your calculator. When a crash occurs, Crash Guard presents a short crash recovery wizard which allows you to send XML Formatted data to a PC or calculator for later analysis. Next, Crash Guard will take you to the disassembly view which shows the code that caused the crash.

Crash Guard In Action

Here is a short example showing Crash Guard in action. I have used the errorsim program found in the errorsimulations folder of KerNO. First, you will be asked if you want to transmit debugging information to the link port. Next, Crash Guard will ask if you wish to view the disassembly. Following your choice, Crash Guard will throw the error (this tells the AMS that there was an error), and then take you to the disassembly. If the program that crashed was executed from the home screen, the error will be shown in the history area.

Step 1: Send Debugging Information To The Link Port? Step 2: Jump To Disassembly? Step 3: Crash Guard Throws The Error

 Step 4: Show The Disassembly Step 5: If the program was run from the home screen, the error will be shown in the history area.


NOTE: If a ASM program crashes, and was archived, the disassembly view may be incorrect because the operating system frees the handle associated with that program. If you want to view the disassembly of a crashed ASM program, make a copy of it in the ram, and make that copy crash ;)

NOTE: Because of the way the M68k CPU stores crash data, the PC (program counter) may point a few bytes ahead of the actual instruction which caused the crash. Usually, if you push the minus (minus) key a few times, you will see the instruction which actually caused the crash.


Errors Handled By Crash Guard

Crash Guard handles these errors which normally force the user to reset the calculator:

  1. Address Error
  2. Illegal Instruction
  3. Divide by Zero
  4. CHK Instruction
  5. TRAPV Instruction
  6. Privilege Violation
  7. Trace Interrupt
  8. Spurious Interrupt

XML Data Format

For a sample XML data file generated with Command Post, please view ErrorLogs.xml.

Each error report contains the following information:

  • Title
    • A short description of the error
  • Registers
    • All registers a0-a6, d0-d7
    • User Stack Pointer (USP)
    • Supervisor Stack Pointer (SSP)
  • Error Frame
    • For More Information Regarding Error Frames See
      • Microprocessor User's Manual 9th Edition. Section 6 Exception Processing. M68000UM/AD. Published by Motorola.
      • Programmers Reference Manual. M68000PM/AD. Appendix B. Exception Processing Reference. Published by Motorola.
    • For Error types 1 and 2, Command Post will always report type="1"
    • The AccessAddress and InstructionRegister Fields are only valid when the ErrorFrame type is equal to zero.

Note: Command Post does not output the user or supervisor stacks to the link port. The link port is not fast enough to support this type of transmission (a user stack dump can take many minutes to complete!).

Recommended Link Settings
To receive error report transmissions, you can either use Command Post's Link Port Logger feature or a gray graphlink cable connected to a computer which is running a program such as HyperTerminal with the following settings: Bits Per Second 9600, Data Bits 8, Parity None, Stop Bits 1, Flow Control Hardware.

It currently (as of 12/22/2003) is not possible to make logs using the Black or USB graph-links. The official Talk-TI SDK does not officially support the receiving or sending of raw data.

Copyright © 2000-2019  Detached Solutions
Last Modified: 2005-07-02 01:36:26 GMT