|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-BC0936D7-7064-447D-83EF-68C65CF3D1B0" xml:lang="en"><title> On-Target |
|
13 Debugging</title><shortdesc>This document describes how to build a device driver to enable |
|
14 stop mode debugging.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <section id="GUID-664F0388-0A89-476F-B784-57E956C07779"> <title> On-target |
|
16 debugging</title> <p>Device Driver debugging is similar to kernel-mode |
|
17 debugging, as drivers run as part of the Kernel. Debug versions of the drivers |
|
18 can be debugged using debug tools such as Lauterbach through a JTAG interface |
|
19 or an IDE. Other debug tools such as Metro TRK can also be used. </p> <p>Most |
|
20 of the hardware platforms supported by Symbian platform are ICE-enabled. Kernel |
|
21 developers and those porting the operating system to new hardware often have |
|
22 access to development boards exposing the JTAG interface, which allows the |
|
23 use of CPU-level debuggers. Using a host PC debugger, such as Carbide.c++ |
|
24 or CodeWarrior configured for remote debugging, a debug ROM image (including |
|
25 drivers) can be downloaded to the target and debugged over a JTAG interface. </p> <p>For |
|
26 debugging, debug versions drivers are built, and the ROM image is built to |
|
27 include the kernel debug DLL, which enables kernel-side (stop mode) debugging. |
|
28 This is done by using the <codeph>STOP_MODE_DEBUGGING</codeph> flag while |
|
29 building the ROM image. For example: </p> <p><userinput>rom –v=h4hrp –I=armv5 |
|
30 –define=STOP_MODE_DEBUGGING</userinput> </p> <p>This includes the kernel extension <filepath>kdebug.dll</filepath> in |
|
31 the ROM image, which provides a stop mode debugger API. </p> <p>When the ROM |
|
32 image is downloaded to the target, the system boots up and the Kernel or driver |
|
33 can be debugged using the host based IDE interface. Code can be stepped through |
|
34 and halted, and memory on the target can be viewed. </p> <p>Symbian also provide |
|
35 a debug monitor (sometimes called the crash debugger) to provide information |
|
36 on Kernel crashes. See <xref href="GUID-26714A57-B6B4-5E81-B512-FB520718482B.dita">Debug |
|
37 Monitor Tool</xref> for more details. </p> </section> |
|
38 </conbody></concept> |