In DS-5 v5.24, we’ve made changes to some of the debugger views. These changes are mostly designed to reduce the amount of non-essential information that the debugger shows, whilst providing easier access to information that is less frequently needed. This results in a clearer debugger display and a significant boost in debugger performance, caused by reading less information from the target each time the display is updated.
We’ve also added a new script management system, which enhances the existing DS-5 scripting capabilities. It’s now possible to manage scripts in multiple named lists, provide multiple entry points in each script, and to create custom script configuration dialogs with named configuration profiles. This extends the powerful configuration methods that DS-5 already supports for debug and trace configuration and enables significant advances in DS-5 functionality, flexibility and usability. A small selection of example scripts is included in DS-5 v5.24. In future releases we’ll be significantly expanding the range of scripts to give enhanced debugger functionality.
Of course, DS-5 Ultimate Edition continues to provide support for the very latest ARM IP. In this release we have added support for Cortex-R8, Cortex-A32 and Cortex-A35, as well as support for generic ARMv8-M cores. We have also packaged the LDRAlite MISRA conformance tool, extended our Streamline templates and added two new example projects with bare-metal start-up code for Cortex-A72 and Cortex-R8. With the other changes that we have made in this release, DS-5 is now faster, more functional and easier to use than ever before.
This blog focuses on the enhancements we have made in the debugger views (changes to the Register view and the Debug Control view, with the addition of the new Stack view) and introduces our new script management system. For further information, please refer to the DS-5 Changelog.
In DS-5 v5.23, the Debug Control view showed core information for bare-metal connections and thread information for Linux kernel, RTOS support and Linux application debug. In v5.24 we’ve provided a new button at the left of the Debug Control view which lets you toggle between core and thread views whenever both types of information are available:
If you switch to the thread-based view, the current thread will be displayed along with closed lists for the active (scheduled) and non-scheduled threads:
However, all threads (scheduled and non-scheduled) can be displayed by opening the appropriate thread list:
Stack information has been moved out of the Debug Control view into a dedicated Stack view. You can open this view from the ‘Window->Show View’ Eclipse menu or you can right-click on a thread/core and select ‘Show in Stack’ from the pop-up menu:
The Stack view defaults to display only the highest 5 stack levels, but a single click will fetch additional stack frames:
A button at the top of the Stack view lets you configure the default number of stack frames to be displayed:
In DS-5 v5.24 we’ve added two new buttons to the top of the Registers view. The first of these buttons opens an intelligent search box (also displayed using the keyboard shortcut Ctrl-F) which helps you to quickly and easily find any register. Double-click the register or register group that you want to display in the Register view:
The second of the new buttons (also available in the Variables and Expressions views) toggles all register values in and out of hexadecimal format:
This button has no effect on registers which are displayed in hexadecimal by default.
We’ve also provided an easy way for you to create custom register lists. You can create and manage custom register lists from the drop-down list box in the Registers view:
You can provide a descriptive name for each custom register list and add the registers that interest you:
When you select a custom register list from the drop-down selection, only the registers that you’ve added to the list will be displayed in the Registers view:
In DS-5 v5.24 we’ve introduced a new script management system to complement and extend the existing DS-5 scripting capabilities. The essential infrastructure and functionality is in place and we’ve provided a small selection of sample scripts to demonstrate the power, flexibility and ease of use of our new script manager. This is a brief introduction to the key concepts.
Our sample scripts can be found in the Scripts view. We call them “use-case” scripts because each script is focused on a particular “use-case”. Scripts contain configurable blocks of functionality aimed at specific tasks.
Each script can have multiple entry points, effectively multiple public functions. This lets you group related blocks of functionality into a single script. For each of our sample scripts we’ve provided documentation, including details of any configuration items. This documentation is taken from the script itself:
Each entry point can be associated with multiple configuration profiles. This is very similar to the configuration profiles that DS-5 already uses for debug connections. Right-clicking a profile lets you enter the configuration dialog:
The configuration dialog will look very familiar if you’ve already used the DS-5 DTSL configuration dialogs for debug and trace sessions. All of the controls in the dialog are soft-configured from the use-case script, so creating custom configuration panels is easy. The syntax used to create custom control dialogs is simple and easy to understand and is the same syntax that DS-5 already uses for DTSL configuration. It’s possible to create multiple named configuration profile for different use-cases:
Buttons at the top of the Scripts view let you create a new script, run a script entry point using a named configuration profile, edit an existing script, delete a script, refresh the scripts view, import scripts, create a new scripts directory and configure a profile. When you run a use-case script, the script is copied to the “Recent” area of the Scripts view. Output from use-case scripts appears in the Commands view.
DS-5 v5.24 is available to download now, we hope you enjoying using it! For any questions, comments or feedback please post below.