|
15-410 Simics Graphical DebuggerIntroductionWhile you may find the Simics command line to be less intuitive than gdb, Simics provides the ability to inspect and control many hardware features that you will need in order to successfully complete the class projects. Also, Simics contains several powerful graphical debugging tools. Note: The Simics GUI can cause performance issues if your network latency (aka ping time) to LINUX.ANDREW is much more than 20 milliseconds. If it is much over that, you may wish to employ the 15-410 Virtual Andrew Accelerator. Getting StartedWhen we launch Simics using the simics46 command, we see two windows pop up, a Simics console window (the console for the OS that is being run), and a Simics control window, which serves as a gateway to other facilities. The control window offers a "Debug" dropdown menu which contains a few debugging tools: Note that the features described below are useful only after the system hits a breakpoint. Disassembly WindowThis provides useful information about an instruction, its address, and the function it belongs to. If the code hits a MAGIC_BREAK, we can use "System Step" to step through each assembly instruction. The GUI makes it easy to always know which function we are currently in. One of the best features of this debugging mode is the "run forward until" feature, which basically runs the program until the specified instruction is hit. This feature can be invoked by right-clicking an instruction. Source WindowThis is similar to the disassembly view, with the exception that it views source code instead of assembly-language instructions. The source view contains similar functions as the disassembly view. Memory WindowThis provides a scrollable view of the entire memory, which is extremely useful when debugging virtual memory, configuring IDT entries, and dealing with heap corruption. | ||||||||||
[Last modified Friday February 26, 2021] |