ARM® DS-5™ Using the Debugger

Version 5.13


List of Topics

Conventions and feedback
Getting started with the debugger
About the debugger
Debugger concepts
Launching the debugger from Eclipse
Launching the debugger from the command-line console
DS-5 Debug perspective keyboard shortcuts
DS-5 Debugger command-line console keyboard shortcuts
Standards compliance in the DS-5 Debugger
Configuring and connecting to a target
Types of target connections
Configuring a connection to an RTSM model
Configuring a connection to a Linux target using gdbserver
Configuring a connection to a Linux Kernel
Configuring a connection to a bare-metal target
Configuring an Event Viewer connection to a bare-metal target
About the target configuration import utility
Adding a new platform
Adding a new configuration database to DS-5
Exporting an existing launch configuration
Importing an existing launch configuration
Disconnecting from a target
Working with the target configuration editor
About the target configuration editor
Target configuration editor - Overview tab
Target configuration editor - Memory tab
Target configuration editor - Peripherals tab
Target configuration editor - Registers tab
Target configuration editor - Group View tab
Target configuration editor - Enumerations tab
Target configuration editor - Configurations tab
Scenario demonstrating how to create a new target configuration file
Creating a memory map
Creating a peripheral
Creating a standalone register
Creating a peripheral register
Creating enumerations for use with a peripheral register
Assigning enumerations to a peripheral register
Creating remapping rules for a control register
Creating a memory region for remapping by a control register
Applying the map rules to the overlapping memory regions
Creating a power domain for a target
Creating a Group list
Importing an existing target configuration file
Exporting a target configuration file
Controlling execution
About loading an image on to the target
About loading debug information into the debugger
About passing arguments to main()
Running an image
About breakpoints and watchpoints
Setting an execution breakpoint
Setting a data watchpoint
Setting a tracepoint
Setting Streamline start and stop points
Setting a conditional breakpoint
Setting a breakpoint on a specific thread
Pending breakpoints and watchpoints
Exporting DS-5 breakpoint settings to a file
Importing DS-5 breakpoint settings from a file
Stepping through an application
Handling Unix signals
Handling processor exceptions
Configuring the debugger path substitution rules
Examining the target
Examining the target execution environment
Examining the call stack
About trace support
Debugging embedded systems
About endianness
About accessing AHB, APB, and AXI buses
About virtual and physical memory
About debugging hypervisors
About debugging big.LITTLE systems
About debugging bare-metal symmetric multiprocessing systems
About debugging multi-threaded applications
About debugging shared libraries
About debugging a Linux kernel
About debugging Linux kernel modules
About debugging TrustZone enabled targets
Controlling runtime messages
About semihosting and top of memory
Working with semihosting
Enabling automatic semihosting support in the debugger
Controlling semihosting messages using the command-line console
Controlling the output of logging messages
About Log4j configuration files
Customizing the output of logging messages from the debugger
Debugging with scripts
Exporting DS-5 Debugger commands generated during a debug session
Creating a DS-5 Debugger script
About Jython scripts
Jython script concepts and interfaces
Configuring a Jython project in Eclipse
Creating a Jython script
Running a script
Creating a CMM-style script
Working with the Snapshot Viewer
About the Snapshot Viewer
Creating a Snapshot Viewer initialization file
Connecting to the Snapshot Viewer
Considerations when creating debugger scripts for the Snapshot Viewer
DS-5 Debug perspective and views
App Console view
ARM Asm Info view
ARM assembler editor
Breakpoints view
C/C++ editor
Commands view
Debug Control view
Disassembly view
Events view
Expressions view
Functions view
History view
Memory view
Modules view
Registers view
Screen view
Scripts view
Target view
Target Console view
Trace view
Variables view
Auto Refresh Properties dialog box
Memory Exporter dialog box
Memory Importer dialog box
Fill Memory dialog box
Export trace report dialog box
Breakpoint properties dialog box
Watchpoint properties dialog box
Tracepoint properties dialog box
Manage Signals dialog box
Event Viewer dialog box
Functions Filter dialog box
Jython Script Parameters dialog box
Debug Configurations - Connection tab
Debug Configurations - Files tab
Debug Configurations - Debugger tab
Debug Configurations - Arguments tab
Debug Configurations - Environment tab
Debug Configurations - Event Viewer tab
DTSL Configuration Editor dialog box
Configuration database panel
About the Remote System Explorer
Remote Systems view
Remote System Details view
Remote Scratchpad view
Remote Systems terminal for SSH connections
Target management terminal for serial and SSH connections
New Terminal Connection dialog box
DS-5 Debugger menu and toolbar icons
Troubleshooting
ARM Linux problems and solutions
Enabling internal logging from the debugger
Target connection problems and solutions

List of Figures

1. Adding a new configuration database
2. Export launch configuration dialog box
3. Launch configuration selection panels
4. Import launch configuration dialog box
5. Launch configuration file selection panels
6. Target configuration editor - Overview tab
7. Target configuration editor - Memory tab
8. Target configuration editor - Peripherals tab
9. Target configuration editor - Registers tab
10. Target configuration editor - Group View tab
11. Target configuration editor - Enumerations tab
12. Target configuration editor - Configuration tab
13. LED register and bitfields
14. Core module and LCD control register
15. Creating a Memory map
16. Creating a peripheral
17. Creating a standalone register
18. Creating a peripheral register
19. Creating enumerations
20. Assigning enumerations
21. Creating remapping rules
22. Creating a memory region for remapping by a control register
23. Applying the Remap_RAM_block1 map rule
24. Applying the Remap_ROM map rule
25. Power Domain Configurations
26. Creating a group list
27. Selecting an existing target configuration file
28. Importing the target configuration file
29. Exporting to C header file
30. Selecting the files
31. Load File dialog box
32. Load additional debug information dialog box
33. Setting an execution breakpoint
34. Setting a data watchpoint
35. Setting a conditional breakpoint
36. Setting a breakpoint on a specific thread
37. Debug Control view
38. Managing signal handler settings
39. Manage exception handler settings
40. Path Substitution dialog box
41. Edit Substitute Path dialog box
42. Examine the target execution
43. Debug Control view
44. Threading call stacks in the Debug Control view
45. Adding individual shared library files
46. Modifying the shared library search paths
47. Typical layout between top of memory, stack, and heap
48. Commands genreated during a debug session
49. PyDev project wizard
50. PyDev project settings
51. Python interpreter warning dialog box
52. Jython auto-completion and help
53. Scripts view
54. App Console view
55. ARM Asm Info view
56. ARM assembler editor
57. Breakpoints view
58. C/C++ editor
59. Show disassembly for selected source line
60. Commands view
61. Set the current working directory
62. Debug Control view
63. Disassembly view
64. Expressions view
65. Functions view
66. History view
67. Memory view
68. Modules view showing shared libraries
69. Modules view showing operating system modules
70. Registers view
71. Screen buffer parameters for the Fireworks example running on a BeagleBoard
72. Screen view
73. Scripts view
74. Target view
75. Trace view with a scale of 1:1
76. Variables view
77. Auto Refresh properties dialog box
78. Memory Exporter dialog box
79. Memory Importer dialog box
80. Memory Fill dialog box
81. Export trace report dialog box
82. Breakpoint properties dialog box
83. Watchpoint properties dialog box
84. Tracepoint properties dialog box
85. Managing signal handler settings
86. Manage exception handler settings
87. Function filter dialog box
88. Jython Script Parameters dialog box
89. Connection configuration for a model using VFS
90. File system configuration for an application on a model
91. Debugger configuration to set application starting point and search paths
92. Application arguments configuration
93. Setting up target environment variables
94. Environment configuration for a model
95. Event Viewer configuration
96. DTSL configuration editor
97. Configuration Database panel
98. Remote Systems view
99. Remote System Details view
100. Remote Scratchpad
101. Remote Systems Terminals view
102. Terminal view
103. Terminal Settings dialog box

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

This document is intended only to assist the reader in the use of the product. ARM shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.

Where the term ARM is used it means "ARM or any of its subsidiaries as appropriate".

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to.

Product Status

The information in this document is final, that is for a developed product.

Revision History
Revision AJune 2010First release for DS-5
Revision BSeptember 2010Update for DS-5 version 5.2
Revision CNovember 2010Update for DS-5 version 5.3
Revision DJanuary 2011Update for DS-5 version 5.4
Revision EMay 2011Update for DS-5 version 5.5
Revision FJuly 2011Update for DS-5 version 5.6
Revision GSeptember 2011Update for DS-5 version 5.7
Revision HNovember 2011Update for DS-5 version 5.8
Revision IFebruary 2012Update for DS-5 version 5.9
Revision JMay 2012Update for DS-5 version 5.10
Revision KJuly 2012Update for DS-5 version 5.11
Revision LOctober 2012Update for DS-5 version 5.12
Revision MDecember 2012Update for DS-5 version 5.13
Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0446M
Non-ConfidentialID120712