Home

Wind River Workbench (Linux Version) User`s

image

Contents

1. 3 Right click the hello_world project and select Build Project The build is performed on the local Windows host Alternatively you can configure additional connections to remote hosts and toggle between them by selecting them in Project gt Remote Connection 223 Wind River Workbench User s Guide 3 0 Linux Version 224 PART V Target Management 13 Connecting to Targets ccccccssseeseeeeessseseeeeeeees 227 14 Connecting with USB ccccssssseeeeeeeeeeeeeeeeeeeees 241 15 Connecting With TIPC ccccccssssseeeeeeeeeeeeseeeeeeees 245 225 Wind River Workbench User s Guide 3 0 Linux Version 226 13 Connecting to Targets 13 1 Introduction 227 13 2 The Remote Systems View 228 13 3 Defining a New Connection 228 13 4 Establishing a Connection 230 13 5 Connection Settings 230 13 6 The Registry 237 13 1 Introduction A Workbench target connection runs on a host and manages communications between host tools and the target system itself A connection must be configured and established before the host tools can interact with the target All host side connection configuration work and connection related activity is done in the Remote Systems view Connections are registered and made accessible to users by the Wind River Registry as described in 13 6 The Registry p 237 Connection data may be maintained ina central location and shared between hosts with the use of remote registries as described
2. ssssssssssssseseseeeeeeneesesenes 113 Configuring Wind River Linux Platforms cccssseeeeeeseeeeneeeeeees 115 Bl IipelGcOn chen acca eice mnineanmamn nea ena eR nes 115 5 2 Configuring Wind River Linux Platform Kernels ssssssssssesseseseeeeeeeeeees 116 B21 Komel Contiguration Node piinadeta aeiia 116 5 3 Adding Kernel Modules to the Platform ssssssessesssessesssesseseeessesseessesseeseesseeseese 117 531 Cieating 2 Custom kermel Module scans dsuemisiarnccueaniincraeias 118 542 Moving Kernel Module Projects sosrasmssssrirs aaan 119 viii Contents 5 4 Adding Build Targets for Analysis Tools scssssssssssssssssssssssssesessees 120 5 5 Working with Packages and Target File System ccssssssssssssessssesesseeee 121 5 5 1 Introducing the User Space Configuration Node cscceseeeeeees 121 5 5 2 Exploring the Target File System A E OT LAL 5 5 3 Handling Target File System Packages RPMs EERE Lae Working with the Controls for ates imnanenmmemuadas lad Force Installing a 125 Removing Packages 125 Installing Packages 126 Installing Multi lib ea and Exportii J Their 126 Importing Packages a P 127 Building Packages 127 Debugging Packages 128 5 5 4 Using the File System Layout PAA Tool immense E Using the Context Menu Entries Examining Meta Properties of the F the F Adding Files and Directories to the File S te Working with Package
3. 146 6 Projects Overview 6 4 Overview of Preconfigured Project Types Wind River Linux Application Project Wind River Linux application projects are developed on the host computer and deployed on the target These projects dynamically generate build specs for Wind River Linux supported board architectures and kernel and file system combinations See 2 3 Creating a Cross Debug Mode Project p 37 for more information on Wind River Linux application projects Wind River User Defined Project Wind River user defined projects run on the Wind River Linux Platform with a user defined build based on an existing Makefile You can specify the project tree structure and project references according to specific projects that you have already defined which are then referenced as subprojects The makefiles for user defined projects can still use values from the Wind River Linux build specs to help set the correct cross compile tool chain and architecture from the respective target s sysroot Wind River Linux Platform Project Wind River Linux platform projects are developed on the Linux host computer and deployed on pre defined targets Platform projects can include prebuilt or customized kernels and pre defined or customized file systems Workbench provides special support for Wind River platform projects including kernel and user space configuration tools and multiple build targets See 3 Creating and Debugging Platform Projects for more detail
4. FOObar Fubar int foo hello cpp 19 Wind River Workbench User s Guide 3 0 Linux Version 1 7 5 Connecting to Targets The Eclipse Remote Systems view replaces the Target Manager offering some new features and connection types but otherwise the same functionality The Remote Systems view allows you to configure access and manage remote file systems and targets and it provides a Local node for access to the local file system and shell Previous connections that have been retained Wind River Linux Application Core Dump Target Server Connection Wind River Linux KGDB Connection Wind River Linux Target Server Connection for Linux User Mode renamed to Wind River Linux User Mode Target Server Connection Wind River Linux Target Server Connection for Linux renamed to Wind River Linux Host Development Target Server Connection New connections Wind River Generic GDB Remote Serial Protocol Connection Wind River QEMU Backend Connection Wind River QEMU Connection Wind River QEMU Linux User Mode Target Server Connection Target Management Issues You cannot drag images from the Project Explorer to Wind River target connections Using the Remote Systems Perspective Switching to the Remote Systems perspective displays the Remote Systems Details view which provides additional information about each defined target connection For more information about target management see 13 Connecting t
5. If you are using the hello_world sample program the output will probably display too fast to be seen because the xterm closes immediately after displaying the message a Open the project in Workbench and double click helloworld c to open it in the Editor b Add the following include statement tinclude lt unistd h gt c And add the following line after the printf statement sleep 10 d Save helloworld c Right click the executable or the DEBUG directory and select Run Native Application and click the Remote Settings tab The Remote Program field should be set to xterm e Application which causes the ouput to appear in an xterm on the Windows host 12 Building Use Cases 12 7 Developing on Remote Hosts 5 Click Run Inamoment an xterm window should appear with the message Hello World and close after ten seconds NOTE If you get an error such as connection to P_address 0 0 refused by server it means your X server is not allowing the remote Linux host to connect Note that debug output will still appear in the Console view Building Locally on the Share You can use the same share to build locally For example assuming you are configured with the same setup as the previous example do the following 1 Select Project gt Remote Connection select Local Host and click Connect 2 Click the Set Active Build Spec and Debug Mode icon in the Project Explorer and set the active build spec to Windows GNU
6. 21 Using Workbench in an Eclipse Environment 21 1 Introduction 323 21 2 Recommended Software Versions and Limitations 324 21 3 Setting Up Workbench 324 21 4 Using CDT and Workbench in an Eclipse Environment 325 21 1 Introduction It is possible to install Workbench in a standard Eclipse environment though some fixes and improvements that Wind River has made to Workbench will not be available 323 Wind River Workbench User s Guide 3 0 Linux Version 21 2 Recommended Software Versions and Limitations Java Runtime Version Eclipse Version Wind River tests supports and recommends using the JRE 1 5 0_08 for Workbench plug ins Wind River adds a package to that JRE version and not having that package will make the Terminal view inoperable Workbench 3 0 is based on Eclipse 3 2 Wind River patches Eclipse to fix some Eclipse debugger bugs These fixes will be lost when using a standard Eclipse environment See the getting started for your platform for supported and recommended host requirements for Workbench 3 0 Defaults and Branding Eclipse uses different default preferences from those set by Workbench The dialog described in 21 3 Setting Up Workbench p 324 allows you to select whether to use Workbench preferences or existing Eclipse preferences In a standard Eclipse environment the Eclipse branding splash screen welcome screen and so on is used instead of the Wind River branding 21 3 Setting
7. 6 Start Workbench on your host Create a new target connection Select the connection type Linux KGDB and click Next Select the connection option Linux KGDB via RS 232 and click Next Select the Baud rate Data Bits Parity Stop Bits and Flow control appropriate to the connection Note that the baud rate must match the setting from 4 3 3 Option 3 Using a Serial Telnet Connection p 95 Click Next Proceed to 4 5 Attaching and Debugging the Kernel from Workbench p 99 If the connection failed go to 4 4 4 When a KGDB Connection Fails p 98 4 4 4 When a KGDB Connection Fails If the connection fails try the following 98 Make sure the KGDB agent on the target is running You can use the lsmod command on the target to see if the module is loaded Make sure that the KGDB agent is using a functional network connection For example run the command ifconfig on the target and double confirm that the kgdboe agent is using the right Ethernet connection Double check that all the IP addresses for the target and host are correct by running ifconfig on both the target and host Try to ping the target from the host and the host from the target to test basic connectivity The ping command uses TCP and KGDB uses the more 4 Kernel Debugging Kernel Mode 4 5 Attaching and Debugging the Kernel from Workbench restrictive unicast UDP packet so you also need to check that you are on the same subnet or have setup an i
8. Switch to a workspace that contains existing projects by selecting File gt Switch Workspace Type the path to the appropriate workspace or click Browse and navigate to it In the Project Explorer right click a project and select Build Options gt Remote Connection The Remote Connections dialog box appears Click Add and type a descriptive name for this remote connection Click OK In the Connection Settings fields add the following information to create a remote connection Connection Type Select Rlogin or SSH Hostname The name of the build host can also be an IP address Username The username used to establish the connection the remote user may differ from the local user Remote Workspace Location The root directory of the workspace as seen on the remote host Display XServer IP address of the machine where the output should be displayed By clicking the Advanced button you can also access these fields 215 Wind River Workbench User s Guide 3 0 Linux Version Password request string A string that will be recognized as a password request to prompt you for the password Remember Password during Workbench sessions A switch to specify whether the password entered should be remembered during the current session This is useful during a lengthy build run session 5 Click Connect to connect immediately Remote connection settings are stored and are specific to this workspace They are not accessi
9. 1 Overview 1 3 Recognizing Concepts in Common with Eclipse Continue reading this chapter and following the step by step instructions in the next chapter until it is time to connect to the local target at which point you should skip ahead to 2 3 Creating a Cross Debug Mode Project p 37 1 2 3 Deciding which Workspace to Use Workbench uses a workspace to hold different types of information including Information about a set of projects including project names lists of files for each project and build specifications Information about the current session including the types and positions of your windows when you last exited Workbench current projects and installed breakpoints When you start Workbench you need to specify a workspace to store your project information You must have write access to the workspace you are going to use The default location proposed by Wind River Workbench may be sufficient but We recommend you separate your workspace from the installation directory If your target and host share a root file system consider placing your workspace inside the root file system that you export to the target Plan to keep different sets of projects separate each workspace has its own set of projects Consider using two or more instances of Workbench where each must have its own workspace and its own target root file system See 3 4 2 Configuring Hardware Target Connections p 63 for more information Not
10. A Proxy Host Es T Target running Telnet Client lt running wrproxy lt gt telnetd i o A Target supplying Workbench Host remote kernel with Data Monitor gt metrics to Data Monitor L gt Node on TIPC Network The proxy host itself can be one that runs any operating system supported for Workbench hosts or any host running Wind River Linux You run the wrproxy command supplied with Workbench on the proxy host and configure it to route access from various tools to specific targets The mapping is done by TCP IP port number so that access to a particular port on the proxy host is directed to a pre defined target You can start wrproxy and then manually configure it or you can create a configuration script that wrproxy reads at startup 376 D Configuring a Wind River Proxy Host D 2 Configuring wrproxy D 2 Configuring wrproxy The wrproxy command or wrproxy exe on Windows is located in installDirlworkbench version foundation version x86 version bin Copy it to the host that will serve as your proxy host The following discussion assumes you have copied wrproxy to your proxy host and are configuring it from the proxy host Configuring wrproxy Manually To configure wrproxy manually start it with a TCP IP port number that you will use as the proxy control port for example wrproxy p 1234 amp You can now configure wrproxy by connecting to it at the specified port Use the create command to c
11. Customer Specitic Linux Kemmel Project rsssmeiesnicrasssaimas 148 Uger Denmed Projeti sunsinssprinna aan Eae n RaRa 148 Nave Application Projeti sirrin oirir i an 148 6 5 Projects and Project Structures cccsssssssssesesesesesssssssssssssssecsesesessssssssesseseees 148 bol Adding subprojects toa Projet eennsrsnenua n 149 Goa Removing SUDpPrOJeTiS sss ei R 149 Creating User Defined Projects ccccseeecssseeeeeeseseeseeseeeeneenseeeeeeees 151 7 1 Introduction siteonssesesinrssisssrnsssscccsrivinisinasrsecssasvinisdnnsdacsictsssnabiassbecasassuenssiadeansasenssonisens 151 7 2 Creating and Maintaining Makefiles ssssssessssssscestsssosessssssesosesesessssssesttesesesessssss 152 7 3 Creating User Defined Projects c cisiscossasesecscsssesssssesscrcssnisensssssascssnasissonsvascacsisios 152 74 Configuring User Defined Projects eeessssssressisevestssersessseseevestsosesosesessteesosssesessssss 153 PAM Conteurs Duld Sup peel insiso ieni i E 153 T41 Contigurme Build Target ocoraoanaseieaioiaki oaa 154 Creating Native Application Projects sssssnenennnnennunnrnnunnnnnnnnnnnnnnnna 155 Bl JOO RCN cacndicas E 155 8 2 Creating a Native Application Project scscsssssessssssccecssssssssseaesesseesessseeeees 156 8 3 Application Code for a Native Application Project s scsssssessseeseesseesseeseess PART IV DEVELOPMENT 9 Working in the Project Explorer sssssssssssessesssssssesesesennseseees 9 1 9 3
12. NOTE On Linux the rlogin client and server daemon can be switched off per default So if the machine is used as a Workbench remote build client host the rlogin executable must be enabled or built and if the machine is acting as build server remote build host the rlogin daemon must be enabled Details may be found in the system documentation of the host 12 7 7 SSH Connection Description The supported protocol is SSH2 and it establishes a connection on port 22 the default SSH port 217 Wind River Workbench User s Guide 3 0 Linux Version Strict host key checking is disabled Workbench does not use a known hosts file so host key information is stored in memory and you are not prompted if the host key changes Only password authentication is supported 12 7 8 Example Using Samba on Remote Linux Host This section presents a procedure in which you configure Samba on a remote Red Hat Linux host You then use Workbench on a Windows host to create a project build it run the application and debug it This example assumes the remote Linux host supports ssh Configure the Remote Linux Host The following steps assume an RHEL 4 Linux host If you are using a different version of Linux you will have to translate the specific commands below for the Samba tools available on your host The smb service should be running on your Linux host see System Settings gt Server Settings gt Services or ustr bin system config
13. This chapter and the next three are tutorials on editing building and then running and debugging a cross compiled application on a target system This chapter demonstrates default perspectives and views that you can use to compile and build a program It explains how to use features of the editor such as name completion bookmarks and parameter hints and how to find the beginnings and ends of code sections This first example requires that Workbench be installed on a Linux or Windows host computer To learn more quickly follow along on your computer 31 Wind River Workbench User s Guide 3 0 Linux Version 2 2 Running Hello World in a Native Mode Linux Environment The following example uses the native development environment in which development tools such as gcc are on your host computer and in your PATH setting You do not need cross development tools for native development If you are using a Windows host go to 2 3 Creating a Cross Debug Mode Project p 37 Native mode self hosted applications such as Hello World are created as Wind River Native Application Projects Wind River User Defined Projects and plain CDT projects See 6 4 Overview of Preconfigured Project Types p 146 2 2 1 Building the Hello World Application If you have not already started Workbench follow the steps in 1 2 Starting Workbench p 6 To build hello_world 1 32 In the Project Explorer near the upper left of the Workbench win
14. gt Language Mappings Change the language mappings for C Header File and C Source File to Wind River Compiler C Dialect 343 Wind River Workbench User s Guide 3 0 Linux Version If the problem still appears send a report to Wind River including log files in the main menu select Help gt Collect Log Files If possible include a small project that shows the problem A 5 Hints about Performance and Breakpoints Wind River Linux platform projects are very large and can present a challenge to Workbench performance If you follow the standard method of using the pre build packages and even the kernel this may not be a problem If you perform a make fs or build several kernels then these steps can create up to 28 000 files each project for Workbench to manage and track Module Optimization Levels and Jumping Program Counters The kernel will be built with various optimization flags set If you step through kernel code you will see the program counter marker jump around as you step through the optimized and re ordered instructions This is normal and proves that optimization was applied This will also occur for kernel modules if you compile without overriding the optimization level because by default all kernel modules built against a kernel will inherit its optimization This can be overcome by building your kernel modules without optimization Right click on the Kernel Module Project and select Properties gt Bu
15. Debug dialog box Configurations list If you cannot delete the launch configuration using the Delete button navigate to installDirlworkspace metadata plugins org eclipse debug core launches and delete the launch file with the exact name of the problematic launch configuration NOTE Do not delete any of the com windriver ide launch files If you click the Debug button or click the Debug button from the Launch Configuration dialog box and get a Cannot create context error check the Exec Path on the Main tab of the Debug dialog box to be sure it is correct Also check your Object Path Mappings See 13 5 2 Object Path Mappings p 234 for information about Object Path Mappings For general information about launch configurations see 17 Launching Programs A 6 6 Source Analysis Errors If at any point Workbench is unable to open the cross reference database you will see this error Question ep Failed to open database containing cross references Retry Clear database Close Reasons the cross reference database may be inaccessible include The database was not closed properly at the end of the last Workbench session running within the same workspace This happens if the process running Workbench crashed or was killed Various problems with the file system including wrong permissions a network drive that is unavailable or a disk that is full You have several choices for how to respond to
16. Ifyou have attached this project to an external platform project Ifyou have attached this to an existing Workbench platform project as described in 4 6 Debugging User Supplied Kernel Modules p 101 This module is now ready for deploying and testing 4 7 Using QEMU for KGDB Kernel Debugging QEMU offers two types of kernel mode debugging using KGDB ICE like debugging using the KGDB agent built into QEMU This allows you to debug areas such as exception vectors and Ethernet drivers that regular KGDB on target debugging normally does not allow See 4 2 5 KGDB and Safe Areas when Debugging the Kernel p 92 KGDB over Ethernet that is a kgdboe agent running inside your kernel on your target loaded via the modprob command This type of connection can show you for example the context that has caused a panic state in the target This section explains the ICE like connection debugging To create an ICE like connection and open the target kernel in the debugger 1 110 Click the Create a New Target Connection button in the Remote Systems view toolbar Select Wind River Linux KGDB Connection and click Next Select Linux KGDB via Ethernet and click Next In the Linux KGDB Connection Properties dialog choose or enter the following then click Next Back End TCP CPU ARM9 LE or any supported QEMU connection Name IP Address localhost Port 1234 Target Plugin Pass through Options notasklist 1 project_prj exp
17. Inserting Breakpoints i Error Messages cscsssnsnssnsssvessosianaciierecssssessemiatiansanesstesinssnnaneccessessoniannestastsaensusiannestant 346 A 6 1 A 6 2 A 6 3 Project Sia Exists Cannot Create Project Files in aed Locati Build Gysterm Een iccivessssinseninconnrrisnssarinsiostevirininseiaorssmecainanininiieetdsavine aa Building Projects While Connected to a Target wees 348 Remote Systems View Biron aicneciinnenamarinioeneneae Odo Tanihieshootiog alana to a Target Error When Running a Task Wit j Downloading an Output File Built with the Wron Build St Error if Exec Path on Target Is Incorrect eee Wind River Workbench User s Guide 3 0 Linux Version Troubleshooting Running Process sesesereccnrniisssrineias 353 AGS Launch Configuration ENOS casasniuemeorcorinesinimubaningnins 354 AGG Source Analysis Errors s srcsuaciurrianminesraiiineni aiaia 354 A7 Emot Log VIEW accesses cesiuca asavcsannampscatinaivanad ina 355 A 8 Error Logs Generated by Workbench ssisssusisrivisisoriscssrerivivesessresisassocereisikees 355 ASI Creanga Gle of Logs csccscsciesesiisansescsesedeutdalassesbcoteaeqnaseeceioneaesaausest 355 fee TONE DO aranna ee 357 ALG DOPWGOB MI LOG ciroen inn A 357 AS4 DEW Debug Tracing Log ccsacnncunnincninicniouninmicemamies 358 ASS Debugger Views COB MI Lem wcnecirenonnennneehern nioi 358 A86 Debugger Views Internal Errors Log sssesessinrrsisieninmisrss
18. Instruction Step Mode on the Debug view toolbar or when the current routine has no debugging information When this mode is set the step buttons cause instruction level steps to be executed instead of source level steps Also the Disassembly view will be shown instead of the Editor To single step without going into other subroutines click Step Over instead of Step Into While stepping through a program you may conclude that the problem you are interested in lies in the current subroutine s caller rather than at the stack level where your process is suspended Click the Debug view s Step Return button in that situation execution continues until the current subroutine completes then the debugger regains control in the calling statement 293 Wind River Workbench User s Guide 3 0 Linux Version The Run gt Stack Frame menu provides other options for manipulating files Drop To Frame The debugger resumes until the execution returns to the selected stack frame Run To Frame Address The debugger executes until reaching the address of the selected stack frame Set Breakpoint at Frame Function Create an expression breakpoint at Frame Function of the selected stack frame the actual function name replaces Frame Function This action is only available if the symbol data for the selected frame is present and the function name is known Set PC to Frame Function Set the Program Counter register to the beginning of th
19. O f 7 9 Debugger Framework CI Linux Target Server CPU Other Plugin Connection Plugin Plugin Plug ins OCD Custom TargetServer ws Backend T WDB Connection A Wind River R Target Agent Linux G E Target Application T 72 3 Creating and Debugging Platform Projects 3 9 Debugging an Application on the Target 3 9 2 Running on the Target up to a Breakpoint The following procedure automatically creates a launch configuration for you which you can access by right clicking in the Debug view You may however connect to the target from the Remote Systems view or the Project Explorer instead of using a launch configuration To run your program on the target and start to debug it 1 If your Debug view is not still open from the previous procedure a Select Run gt Debug Last Launched to open it b Select your launch on the left to display the launch configuration 2 Click Debug to connect to your target and launch the program Workbench Builds the program Connects to the target if not already connected Switches to the Device Debug perspective Downloads the program and runs it on the target in this case the program is run as an ordinary Linux application program The program executes up to main and breaks Opens the source file and highlights the location of the program counter where execution has stopped in the main routine NOTE Instead of using the menu selections you could use F11 or
20. Wind River Workbench User s Guide 3 0 Linux Version 12 3 Building Applications for Different Target Architectures The target nodes under projects in the Project Explorer display in blue the name of the currently active build spec You may want to switch build specs to build projects for different architectures If for example you want to build an application for testing on the localhost and then build the same project to run on a real board you would simply switch build specs as follows 1 Right click the project node and select Build Options gt Set Active Build Spec 2 Inthe dialog box that appears select the build spec you want to change to and specify whether or not you want debug information When you close the dialog box you will notice that the label of the target node has changed If you selected debug mode in the dialog box the build spec name is suffixed with DEBUG 3 Build the project for the new architecture NOTE To select the Active Build Spec directly from the Project Explorer click the checkmark icon in the Project Explorer toolbar 12 4 Creating Library Build Targets for Testing and Release Assume you have a library project that consists of the files sourcel c source2 c and test c The file test c implements a main function and is used as an executable for testing the library therefore it is not to be included in the library This implies the use of different build targets that are bui
21. Wind River Workbench User s Guide 3 0 Linux Version 314 20 Integrating Plug ins 20 1 Introduction 315 20 2 Finding New Plug ins 316 20 3 Incorporating New Plug ins into Workbench 316 20 4 Disabling Plug in Functionality 320 20 5 Managing Multiple Plug in Configurations 320 20 6 Installing JDT for Third Party Plug ins and Debugging 321 20 1 Introduction Since Wind River Workbench is based on Eclipse you can incorporate new modules into Workbench without having to recompile or reinstall it These new modules are called plug ins and they can deliver new functionality and tools to your copy of Wind River Workbench Many developers enjoy creating new plug ins and sharing their creations with other Eclipse users so you will find many Web sites with interesting tools and programs available for you to download and incorporate into your Workbench installation For plug ins dependent on Java Development Tools JDT see 20 6 Installing JDT for Third Party Plug ins and Debugging p 321 for help downloading the JDT 315 Wind River Workbench User s Guide 3 0 Linux Version 20 2 Finding New Plug ins In addition to the Eclipse Web site http www eclipse org many other Web sites offer a wide variety of Eclipse plug ins Here are a few http www eclipse plugins info eclipse plugins jsp http www eclipseplugincentral com http eclipse plugins 2y net eclipse http www sourceforge net 20 3 Incorporatin
22. Wind River Workbench User s Guide 3 0 Linux Version Apart from the things you see directly in the Editor source analysis also provides the data for code comprehension and navigation features such as include browsing call trees as well as resolving includes to provide the compiler with include search paths NOTE Syntax highlighting is provided for file system files that you open in the Editor but no other source analysis features are available for files that are outside your projects 10 2 Wind River Workbench Context Navigation Various filters are available on each tool s local toolbar Hover the mouse over each button to see a tool tip describing what it does At the top right a pull down menu provides additional filters including working sets if you have defined any An active working set is marked by a bullet next to its name in the pull down menu Generally you will want to navigate to symbols or analyze symbol related information from an Editor context The entry points are as follows The right click context menu of a symbol Keyboard shortcuts that act on the current selection in the Editor F3 Jump between associated code for example between definition declaration or function definition call There is no navigation from workspace files to external files i e files outside your projects F4 Open the type hierarchy of the current selection see Type Hierarchy View p 172 CTRL ALT H Open
23. Windows Linux and Solaris This script launches a GUI less Eclipse application that can be used to update makefiles symbols source analysis and the search index Execution Specify the location of the wrws_update script or add it to your path and execute it with optional parameters for example wrws_update sh data workspace_dir NOTE The workspace must be closed for the command to execute This includes closing all instances of the Workbench GUI that are accessing this workspace If you do not specify any options to the command all update operations are performed all projects generate makefiles update symbols update index 383 Options Wind River Workbench User s Guide 3 0 Linux Version General Options h help Print command help q quiet Do not produce standard output Eclipse Options data workspace_dir The script uses the default workspace if known but it can also update other workspaces by specifying the data workspace_dir option just as Workbench does The script accepts the same command line options as Workbench For example to increase virtual memory specify vmargs Xmxmem_size Global Options a all projects Update all projects this option will force all closed projects to be opened Opened projects will be closed after finishing the update 1 specify list of projects argument Specify a list of projects to be updated This option reduces the scope of t
24. edx x kex z Hos 0804871f call near eax penguin source b_main cpp 28 Planted 08048721 dword pt bp OxC z 3 j pactaees sas eet dword Ai ea E Q penguir source b_main cpp 128 Planted 08048727 mov dword ptr ebp OxC eax 080487 2a jmp 0x8048709 32 L Za E 3 5 a oF di EE SR Registers 23 Q amp amp VCE n 3 iS ali 08048731 mov ebx dword ptr ebp 0x4 General General 08048734 leave m eax 0x08048B66 08048735 ret E E ebx Ox46C67FF4 NOTE The assembly code shown will differ depending on your target Code produced for an Intel MPCBLO0001 target is shown For the ARM Versatile board for example the blx instruction corresponds to the call instruction With the assembly language code visible you can step in and out of the inherited parent class methods for C classes as your C code is executing For example if you step into the call for the p object s Move method you step into the Move method code for the parent class BALL as shown in Figure 18 4 299 Wind River Workbench User s Guide 3 0 Linux Version Figure 18 4 Example of C Assembly Code C bLmain cpp E penguin out newConnection z 3 m penguin out 3454 125 BALL Move O8048b66 push ebp 08048b67 mov ebp esp 08048b69 push esi 08048b6a push ebx O8048b6b sub esp 0x30 Debug X C wt amp a x ny penguin out newConnection Process on T 22 penguin out 3
25. functionality available in Workbench For Wind River specific information refer to the Wind River Workbench User s Guide Help gt Contents gt viPlugin Help Center viPlugin Help Center User Manual v1 6 Additional information on using the viPlugin Help gt Contents gt C C Development User Guide C C Development User Guide The C C Development Toolkit CDT is a collection of Eclipse based features that provides the capability to create edit navigate build and debug projects that use C and or C as a programming language Help gt Contents gt RSE User Guide RSE User Guide The Remote System Explorer RSE is a perspective and toolkit in Eclipse Workbench that allows you to connect and work with a variety of remote systems 27 Wind River Workbench User s Guide 3 0 Linux Version 28 PART Il Getting Started Introducing Application Development 31 Creating and Debugging Platform Projects 49 Kernel Debugging Kernel Mode 87 Configuring Wind River Linux Platforms 115 29 Wind River Workbench User s Guide 3 0 Linux Version 30 21 22 2 3 2 4 20 2 6 Introducing Application Development Introduction 31 Running Hello World in a Native Mode Linux Environment 32 Creating a Cross Debug Mode Project 37 Using the Editor 40 Configuring Project Build Properties 45 Building the Project and Correcting Simple Errors 46 2 1 Introduction
26. gt You can then click Add for the Option Value window and enter options directly by selecting them from the list provided and editing them as appropriate Substitute actual values for DIR BUILD and so on and choose between options specified in square brackets and separated by lines For example if you select the following option with toolchain version STRING current you would substitute a value for STRING or use current as in with toolchain version current If you select an argument from the list that contains a DIR value to be replaced the Browse button becomes enabled and you can browse to choose the appropriate directory Click Add to add each additional option When you have finished adding options click OK For now ignore the Configure Options dialog box Proceed with the next step 55 Wind River Workbench User s Guide 3 0 Linux Version Optional and not needed here If you are in the Advanced gt gt view of the Configure Options dialog you can click Add for Layers or Templates See 3 10 Customizing Builds with Layers and Templates p 81 For now ignore layers and templates Proceed with the next step Click Finish to ignore the source code indexer and its associated performance penalty The configure command is executed Its output appears in the Build Console and is stored with additional information in the project s creation log file A new platform project creates two subdirectories
27. helloworld c 38 A Debug amp v hello_world_Native WRLinuxHost_ YV g hello_world_Nat 11158 Task M vV amp ihello_worlid_Nat 11158 Stop m main helloworld c 8 gt printf Hello World n _libc_start_main 0x00b return 9 0x0804831c i gt hello_world_Nat 11158 6 Inthe Debug view note 34 The process ID PID in the entry hello_world_Nat PID Task Mode The entry hello_world_Nat PID Stopped Breakpoint Hit The breakpoint itself appears as main helloworld c 8 meaning that execution has stopped at Line 8 in helloworld c To display all the processes running on the target and the state of the hello_world_Nat process a Expand Processes in the Remote Systems view b Scroll down if necessary until you find the process ID of hello_world_Nat c Expand it The process is shown as Stopped because it has hit a breakpoint Move to the Debug view and hover the mouse cursor over the buttons in the view s toolbar to see the debug functions that you can perform Resume 2 Introducing Application Development 2 2 Running Hello World in a Native Mode Linux Environment Terminate Disconnect Step Into Over and Return Toggle Assembly Stepping Mode and Drop to Frame 2 To see function keys assigned to common activities click the Run icon in the 2 main toolbar 9 Click the Step Over button or press F6 The program counter advances one line in the editor and
28. install the wrong infrastructure files You must have unique installations for each host operating system You cannot use the same shared installation for multiple host operating systems Each host type must have its separate shared installation to get the proper host tools and infrastructure details Shared Wind River Linux Installation Use the following procedure to install Workbench and Wind River Linux on your network server 1 372 On the local host Windows Linux or Solaris install Workbench in the shared location using the proper license key On the local host install Wind River Linux in the same location using the same key Use Workbench from any host of the same type Windows Linux or Solaris Specify a local workspace C Installing on Network Servers Local Workbench Installation You may want to use a local installation of Workbench to reduce network traffic and dependencies or for performance reasons Use the following procedure to install a local copy of Workbench that uses the shared Wind River Linux installation 1 Install Workbench on your local host 2 Append the contents of the installDir install properties file located in the wtlinux version directory of the shared installation to your local installDir install properties file 3 Edit the WIND_LX_HOME value in your local installDir install properties file to point to the shared installDir Note that you must always use as the direct
29. mov pc r14 arm926_flush_user_cache_range Debug 2 v amp WRLinuxKGDB_localhost V ARM9 LE Linux 2 6 S v S System Context Si 0xc002f818 default_idle p cpu_idle proc rest_init main start_kernel n 0x00008030 At this point the debugger has attached the KGDB agent in QEMU on the target side halted the target and stopped in the kernel 10 Inthe Debug view press the Resume button to resume the target operation Now you can do any kernel mode debugging that you would normally do using ICE with a real target 112 4 Kernel Debugging Kernel Mode 4 8 Enabling and Disabling KGDB in the Kernel 4 8 Enabling and Disabling KGDB in the Kernel This section contains notes about enabling and disabling KGDB in the kernel By default KGDB is enabled in the pre built and generated Wind River Linux kernels Here are the steps to disable KGDB used for example when transitioning to production builds 1 Double click the project s Kernel Configurator icon in the Project Explorer If you have not previously extracted the kernel answer Yes when Workbench prompts to extract the kernel files 2 Open the Kernel Hacking tree 3 Double click the Compile the kernel with debug info menu item to toggle between Yes and No 4 Select File gt Save to capture the configure changes 5 Right click the project s build target kernel_rebuild The new kernel and vmlinux file will b
30. or User defined builds depending on whether your projects are Customer Specific Linux or Native Application or User Defined projects You can also set them from a project s Project gt Properties gt Build Properties again depending on the type of project 189 Wind River Workbench User s Guide 3 0 Linux Version These build types are as follows Managed Build Workbench controls all phases of the build Managed build support is available for all project types except user defined projects NOTE Managed build refers to the type of build that was called flexible managed build in previous releases of Workbench What used to be called standard build or standard managed build has been deprecated but you can still create one by choosing Preferences gt Wind River gt Build and checking the box for Enable deprecated standard managed build if your build structure is similar to the file system structure You cannot change a project s build type User Defined build With User defined builds you are responsible for setting up and maintaining your own build system and Makefiles but Workbench does provide minimal build support You can configure the build command used to launch your build utility so you can start builds from the Workbench GUI You can create build targets in the Project Explorer that reflect rules in your makefiles so you can select and build any of your make rules directly from the Project Explore
31. proj1 spec1 Target1 Debug Objects a o proj1 spec1 Target1 Debug Objects folderl1 c o proj1 spec1 Target1 Debug Objects folder1 d o proj1 spec1 Target2 Debug Target2 out proj1 spec1 Target2 Debug Objects b o proj1 spec1 Target2 Debug Objects d o 11 3 Configuring User Defined Builds When you create a User Defined project you can configure the build command make rules build target name and build tool for more information see 7 Creating User Defined Projects To create the build target right click your project in the Project Explorer and select Build Project To update the build settings right click your project in the Project Explorer and select Properties then select Build Properties For more information about the settings described on the build properties tabs open the build properties dialog and press the help key for your host 195 Wind River Workbench User s Guide 3 0 Linux Version 11 4 Accessing Build Properties There are two ways to set build properties in the Workbench preferences to be automatically applied to all new projects of a specific type and manually on an individual project folder or file basis The properties displayed will differ depending on the type of node and the type of project you selected as well as the type of build associated with the project For details see Wind River Workbench User Interface Reference Build Properties 11 4 1 Workbench Global Build Properties To access
32. sh csh bat and tcl A more concrete example setting environment in csh without starting a sub shell eval wrenv sh p wrlinux 2 0 p print env f csh Extracting environment settings The following command line can be used to output the environment variables to standard out wrenv sh p wrlinux 2 0 p print env path label For example suppose you had a script that needed to find all packages that added a path for WIND_WRLINUX_LAYERS These paths would be in install properties in the form ipnet60 eval 01l addpath WIND WRLINUX_LAYERS WIND HOME ipnet 6 0 To extract these paths you could run this command wrenv sh p wrlinux 2 0 p print env WIND WRLINUX LAYERS NOTE In Windows separate the paths by the colon character For Unix and Linux separate them by the semi colon character If there are no matches an empty string is returned 369 Wind River Workbench User s Guide 3 0 Linux Version 370 Installing on Network Servers Workbench and Wind River Linux can be installed on a network server instead of locally This allows you to reduce the number of installations simplify maintenance and save disk space You can also install Wind River Linux on a network server and then use a local installation of Workbench to access it You should consider the following issues when making an installation of Wind River Linux for use on your network You must use the same absolute path when
33. you can connect to the target later using one of the ways described in 18 Debugging Projects If you have applications ready to run using the connection s you have just created see 17 Launching Programs 236 13 Connecting to Targets 13 6 The Registry 13 6 The Registry The Wind River Registry is a database of target servers boards ports and other items used by Workbench to communicate with targets For details about the registry see the wtxregd and wtxreg entries in Wind River Host Tools API Reference in the online Help Before any target connections have been defined the default registry which runs on the local host appears as a single node in the Remote Systems view Under Linux the default registry is a target server connection for Linux user mode Additional registries can be established on remote hosts Registries serve a number of purposes The registry stores target connection configuration data Once you have defined a connection this information is persistently stored across sessions and is accessible from other computers You can also share connection configuration data that is stored in the registry This allows easy access to targets that have already been defined by other team members NOTE Having connection configuration data does not yet mean that the target is actually connected The registry keeps track of the currently running target servers and manages access to them Workbenc
34. 0x117B0 0x117B0 lt Traditional gt 2D2D2D2D 2D2D20D2D 2D2D2D2D 2D2D2D2D 70202020 20202020 20202020 20202071 70202020 202A2020 20202020 2020207 70402020 20202020 202A2020 20204F7C 7C202040 20202020 20202020 20202071 70202020 20202020 20202020 20202071 7C20204F 20202020 20202020 20202071 70202020 20202020 20202020 20202071 7 202020 20202020 20202020 20202071 2D2D2D2D 2b2D2b2b 2D2D2D2D 20202021 3 9 6 Modifying the Breakpoint to Execute Continuously Next change the behavior of the breakpoint so that the application does not stop executing at each break but instead refreshes the display 1 Right click the breakpoint in the gutter or in the Breakpoints view and select Breakpoint Properties The Line Breakpoint Properties dialog appears 2 Click the Continue on Break check box 3 Click OK 4 Press F8 or click the Resume button to watch the balls bounce in the Memory view 3 9 7 Sending Signals to Processes The Remote Systems view displays all available processes To send a POSIX compliant signal to a process 1 Right click the process and select Send Signal 2 Select a signal from the list and click OK Workbench sends the signal to the selected process 80 3 Creating and Debugging Platform Projects 3 10 Customizing Builds with Layers and Templates For example send a SIGINT or SIGTERM to terminate a process If these are not successful perhaps the process is stuck in a system call send it a
35. 28 fc7 patches the new file dos2unix wr integration patch which contains the changes 4 Return to the User Space Configuration node select the dos2unix entry and click the Build button in the Targets tab This will build the package and its RPM files 5 Copy the new patch file back to dist dos2unix patches and update the patches list file 5 6 5 Exporting and Importing Patches with Workbench You can use the Export Patch feature to export an existing or new patch file from your platform project to an external file so that it can be shared by other developers It can also be imported into a different project using the Import Patch feature To export a patch from the build system 1 Open a platform project 2 Open the project s build folder If that folder is not currently visible right click the project and select Add Links to Development Folders 3 Open the folder of the desired package then open the patches folder 4 Select a registered patch file If this patch is not up to date right click and select Quilt gt Refresh Top Patch 137 Wind River Workbench User s Guide 3 0 Linux Version 5 Right click the patch file select Quilt gt Export Patch and choose a location to place this exported patch To import a patch to the build system 1 Open a different platform project one without the exported patch of the previous procedure 2 Open the project s build folder If that folder is not currently
36. 3 Choose gdb Debugger 35 Wind River Workbench User s Guide 3 0 Linux Version T The process executes until it comes to the main routine in the program The Debug perspective shows the Debug view in the upper left The editor displays the source file and other views show typical debugging operations In the Debug view note The process ID PID in the entry hello_world_Nat PID Task Mode The entry hello_world_Nat PID Stopped Step End The breakpoint itself appears as main helloworld c 8 meaning that execution has stopped at Line 8 in helloworld c Move to the Debug view and hover the mouse cursor over the buttons in the view s toolbar to see the debug functions that you can perform Restart Resume Terminate Step Into Step Over and Instruction Stepping Mode Click the Step Over button or press F6 The program counter advances one line in the editor and Hello World displays in the Console view You may have to click the Console tab in the lower window If you have added any variables to helloworld c and they have been assigned values the upper right Variables tab displays their current value s Step through the program or press F8 or the click Resume to complete it When the program has completed the Debug view displays its exit status lt terminated exit value 0 gt hello_world_Native C C Local Application To remove old information from the Debug view click the Debug view
37. 7 O 69 Variable itt Register G2 Express 3 6 v e S 2H BA 5 E Monite g Renderings 3 B AE 4 e Y Expression Value gt grid 0x000117B0 Co a 3 9 4 Stepping Through Code This procedure takes you through the initialization of the Grid array in the ball sample program 1 Press F6 or use the Step Over icon in the Debug view twice to step from the entry point of main to the call to srand Using F6 twice causes Workbench to step over and complete the execution of gridInit All the run controls are available on the Run menu and also as toolbar icons in the Debug window 2 Inthe Memory view click the s Add Memory Monitor icon in the Monitors toolbar enter the value address of the grid array from Step 4 in 3 9 3 Using the Device Debug Perspective p 74 and click OK 76 3 Creating and Debugging Platform Projects 3 9 Debugging an Application on the Target Error Lo Tasks Problem 0 Monitors dp Renderings e Monitor Memory x Enter address or expression to monitor Ox117B0 OK Cancel 3 Adjust the Memory view to show the box outlining the grid on which the balls will bounce Right click in the Renderings column and select Cell Size gt 8 bytes b Drag the right or left borders of the Memory view to make it exactly wide enough and drag the top and bottom borders to make it high enough for the box in the text area of the window to appear cor
38. Creating a Native Application Project Before creating the project please take a look at the general comments on projects and project creation in 6 Projects Overview To create a Native Application project 1 156 Choose File gt New gt Native Application Project The New Native Application Project wizard appears If you have multiple operating systems installed you are asked to select a target operating system If you see this field select a version from the drop down list and click Next Enter a Project name and Location If you choose Create project in workspace default the project will be created under the current workspace directory If you choose to Create project at external location you can navigate to a location outside the workspace see also 6 2 Workspace and Project Location p 144 and 6 3 Creating New Projects p 145 The project appears in the Project Explorer To see the project location right click the project and select Properties then select the Info node of the Properties dialog When you are ready click Next If you have created other projects you are asked to define the project structure the super and subproject context for the project you are creating The text beside the Link to superproject check box refers to whatever project is currently highlighted in the Project Explorer if you do not see this check box no valid project is highlighted If you select the check box this will be th
39. Custom Build Targets in Workbench Managed Projects First write the make rules you need into the wrmakefile file in the project directory NOTE For Wind River Platform projects see 12 6 3 Custom Build Targets in Wind River Linux Platform Projects p 211 1 Right click a project or folder and select New gt Build Target 2 Inthe dialog box that appears enter the rule name s you created in wrmakefile If you want to execute multiple rules separate each one with a space 3 Set the Build tool to User defined 210 12 Building Use Cases 12 6 User Defined Build Targets in the Project Explorer 4 Click Finish The new build target node appears under the project or folder you selected The node icon has a superimposed M to identify it as a user defined rule To execute the rule s right click the new target node and select Build Target 12 6 3 Custom Build Targets in Wind River Linux Platform Projects To create a custom build target for a Wind River Linux Platform project you edit Makefile wr not wrmakefile The contents of wrmakefile build properties and build targets should be edited only through the project Properties gt Build Properties dialogs NOTE This example shows how to add a build target to invoke the uClibc configuration for PCD based projects This technique applies to bringing any other Wind River Linux or custom command line feature to Workbench Platform Projects First write the rules you w
40. File Copy tab for transferring to root on the target Adding the required object path mappings to the connection properties Updating the Exec Path on Target attribute based on these default mappings Creating an automatic breakpoint at main These settings result in automatically transferring the application image to the target which is already running usermode agent running the application and breaking at main In addition 69 Wind River Workbench User s Guide 3 0 Linux Version You may modify the file transfer to transfer the file to a location other than root on the target This change persists in later uses of the launch configuration You may launch the same image multiple times without the image being transferred each time You can suppress the transfer completely by disabling the file transfer You must disable the transfer not just remove it This automation and flexibility are associated with a few limitations such as If you rebuild the image the transfer will happen again there is currently no mechanism for recognizing that the rebuild might have resulted in the same image The image transfer fails if any process created from it is still running on the target 3 8 2 Modifying the Default Launch Configuration If the automatic default configuration is inappropriate for some reason you may modify the launch configuration as follows 1 2 70 Right click the application that
41. Moving Copying and Deleting Resources and Nodes 165 9 1 Introduction The Project Explorer is your main graphical interface for working with projects You use the Project Explorer to create open close modify and build projects You also use it to add or import application code to import or customize build specifications and to access your version control system Various filters sorting mechanisms and viewing options help to make project management and navigation more efficient Use the arrow at the top right of the Project Explorer to open a drop down menu of these options 161 Wind River Workbench User s Guide 3 0 Linux Version 9 2 Creating Projects Creating projects is discussed in general under 6 3 Creating New Projects p 145 Specific descriptions for creating individual project types are provided in the other chapters in Part III Projects 9 3 Adding Application Code to Projects After creating a project you have the infrastructure for a given project type but no actual application code If you already have source code files you will want to import these to the project Importing Resources You can import various types of existing resources to newly created projects by choosing File gt Import For details about the entries in the Import File dialog see Wind River Workbench User Interface Reference Import File Dialog NOTE Importing resources creates a link to the location of those resources it
42. New 2 Once you click New tabs appear and display the appropriate fields and options for your configuration type 266 17 Launching Programs 17 2 Creating a Launch Configuration 17 2 1 Editing an Attach to Target Launch Configuration The Main Tab You do not create Attach to Target launch configurations manually Instead these configurations are created automatically when you attach to a process or kernel task from the Remote Systems view Attach to Target launch configurations are special in some ways They do not actually run something but just connect a target and attach the debugger to some context that must already exist They are visible only in Debug mode Attach to Target launches cannot be created manually They are created automatically when you attach the debugger to a context using the Remote Systems view Once an Attach to Target launch is created you can review and edit it in the Launch Configurations dialog box The properties in the Main tab are for review only and cannot be changed What you can do is Review your existing attaches and delete those that you no longer need Rename your attaches and if you think they are valuable put them into your Favorites menu using the Common tab Change the mapping between source paths compiled into your objects and source paths in your workspace by editing the Source Locator information in the Sources tab Change the Projects to Build settings fo
43. Project p 54 2 Click Advanced 3 Click Add to the right of the Layers box 4 Browse to the directory containing a layer to include in the project Because part of Wind River Linux is implemented using layers the Workbench installDir contains some such as the kernel implementation in the layer wrlinux 2 0 layers wrll linux 2 6 21 However the layers you choose to add to the project come from directories other than installDir 5 Click OK 83 Wind River Workbench User s Guide 3 0 Linux Version Layers make it easy to package locate and review a set of changes allowing you to back out undesirable changes and to share your changes in a coordinated fashion You could for example add packages remove other packages and add and remove different kernel features with a single layer You could then distribute your layer to a group of developers or simply make it available over the LAN Other developers could then easily include or exclude your changes with a single configure command switch You can create layers automatically from a build environment you have modified or you can create them manually as described in Wind River Linux Platforms User s Guide 2 0 Custom layers are processed differently from custom templates During processing the system looks first to the custom layer in an attempt to find the template package or file it is looking for Thus custom layers can be used to add templates packages or files
44. Rational ClearCase plug in To install it 1 318 Follow steps 1 and 2 in 20 3 1 Creating a Plug in Directory Structure p 316 For the purposes of this example name the top level directory eclipseplugins and name the plug in directory clearcaseIBM The IBM ClearCase plug in creates the eclipse directory and the eclipseextension file for you Navigate to http www 128 ibm com developerworks rational library content 03July 2 500 2834 ClearCase clearcase_plugins html This link was updated 31 January 2007 NOTE The IBM links change from time to time Currently the above link works as does the following alternate http www ibm com developerworks rational downloads 07 cc_eclipse3_2 clearcase_plugins html This link was updated 02 January 2007 Click the Download or HTTP link to the right of the appropriate download description of the package depending on whether you are using Linux or Windows Adapter V 7 0 0 x for Eclipse 3 2 Linux Adapter V 7 0 0 x for Eclipse 3 2 Windows Notice that the corresponding titles in the alternate link are as follows but they result in downloading the same Linux or Windows file IBM Rational ClearCase SCM Adapter V 7 0 0 x for Eclipse 3 2 Linux IBM Rational ClearCase SCM Adapter V 7 0 0 x for Eclipse 3 2 Windows Extract the zip file to your eclipseplugins clearcaseIBM directory The eclipse directory is created for you and inside are two directories called features an
45. SIGKILL Note that the Sun Java Virtual Machine JVM uses SIGQUIT to create a stack dump on the terminal Sending SIGQUIT to any running JVM dumps the stack trace of all active threads to the terminal associated with the JVM For more details see 18 2 8 Using the Debug View to Send Signals to Processes p 296 3 9 8 Terminating the Process When you are done 1 Click the Terminate icon in the Debug view s toolbar It looks like a red box 2 Click the Remove All Terminated Launches button two gray X s to remove the terminated launch 3 10 Customizing Builds with Layers and Templates Workbench s Platform Project wizard allows you to select features to customize builds for purposes such as Adding packages Creating new BSPs Ensuring that custom builds can be easily repeated Completely separating custom code from the installed Wind River development environment This customizing facility is implemented as templates and layers These can sometimes be used interchangeably but they are designed for different purposes Templates suitable for small or discrete changes typically are incorporated into a project at the end of the configuration process Layers are appropriate for adding new packages and making significant changes to a BSP s templates for example 81 3 10 1 Adding Templates to a Project Table 3 3 Wind River Workbench User s Guide 3 0 Linux Version To add templates to a
46. See build output analysis editor An editor is a visual component within Wind River Workbench It is typically used to edit or browse a file or other resource Modifications made in an Editor follow an open save close life cycle model Multiple instances of an Editor type may exist within a Workbench window element Aprogramming language element such as a class structure union typedef enumeration namespace function method or variable includes member variables of types Element replaces the former notion of the term symbol external API An index holding a pre parsed platform API for a project type Most managed project types come with an external API package which when indexed provides the most common API functions methods and types for code completion and parameter hints in the source editor flexible managed build Deprecated name for what is currently called managed build 395 Wind River Workbench User s Guide 3 0 Linux Version help key Press the help key in Workbench to get context sensitive help The help key is host dependent On a Windows host press F1 On a Linux or Solaris host press CTRL F1 host shell A Wind River command shell that provides a command line environment for GDB and KGDB debugging The host shell also provides Tel scripting support hover info hunk index JDT JNI Information presented by the source editor as you move the cursor over any method function va
47. Target Consider an example where opt windriver ppc_85xx is exported to a target named ppc_target from where it is mounted as the root file system 63 Wind River Workbench User s Guide 3 0 Linux Version Figure 3 1 illustrates an exported root file system Note that changes in either location are directly reflected in the other view Figure 3 1 Exported Root File System Example Host with Workbench PPC Target opt windriver ppc_85xx bin home opt sys a home opt sys gt T sn boot initrd proc tmp boot initrd tmp i dev lib TOt er Egana dev Ib p foot usn etol mnt sbin var it file system NO ii sion i Alternatively if you are using a target that has its own file system you can NFS mount that file system on your host for example mount t nfs targetbox opt windriver ppc_85xx Configuring TFTP to Provide a Kernel Many boards use TFIP to download a kernel from a network server If this is how you are providing the kernel copy the kernel from the export directory in your project build directory to the TFIP directory typically tftpboot Creating an Actual Target Connection To create a connection to your target 1 Click on the Define a connection to remote system icon in the Remote Systems toolbar 2 Select Wind River Linux User Mode Target Server Connection Click Next 3 Enter the IP address or hostname of the target in th
48. Target Server Connection a Browse button appears for the usermode agent field For details on all the options presented in the New Connection dialog refer to 13 5 Connection Settings p 230 Connecting to Core Dumps Specify the name of the core dump file in Core dump file and specify the path to the executable that caused the core dump in Application image For more information refer to 19Analyzing Core Files p 309 Connecting in Kernel Mode KGDB Connection When configuring a kernel mode connection you must first select the type of connection which will be either by a serial line RS232 or over Ethernet An additional option is provided in case you are using a terminal server A final option is for custom situations for which you should refer to Wind River Support Specify an IP address and the path to your kernel symbol file Kernel image For more information on connecting in Kernel mode and how to configure the target to support KGDB refer to 4 Kernel Debugging Kernel Mode 229 Wind River Workbench User s Guide 3 0 Linux Version Connecting in User Mode Specify the target s IP address and root file system when making a user mode connection The target must be running the usermode agent Refer to 2 Introducing Application Development for details on configuring the usermode agent and on making a user mode connection 13 4 Establishing a Connection Once you have created your application projects a
49. Target TIPC Target Workbench Host lorkbench Hos E tgtsvr a VDP p wrproxy TIPC Target TIPC Target lt 15 4 Configuring Your Workbench Host p 250 describes how to configure the target server on the Workbench host to connect to the proxy agent and reach the TIPC target that you want to connect to 249 Wind River Workbench User s Guide 3 0 Linux Version 15 4 Configuring Your Workbench Host Table 15 1 Use the tgtsvr command to connect to the proxy for communication with a TIPC target The following command shows the TIPC options to use tgtsvr V B wdbproxy tipe tgt targetTipcAddress ProxylpAddres For example to connect to a target with a TIPC address of 1 1 8 using a proxy with the IP address 192 168 1 5 use the following command tgtsvr B wdbproxy tipc tgt 1 1 8 192 168 1 5 Additional Information A fuller syntax for the tgtsvr command is tgtsvr V B wdbproxy tipe tgt targetTipcAddress tipept tipcPortType tipepi tipcPortInstance wdbProxyIpAddress name Table 15 1 explains the italicized parameter values in the command TIPC Specific Parameter Values for Starting a Target Server Parameter Value targetTipcAddress The TIPC address of the target with the TIPC network stack For example 1 1 8 tipcPortType The TIPC port type to use in connecting to the WDB target agent The default port type for the connection is 70 You should accept the default port unless it is alre
50. The Name Filter field at the top of the view provides match as you type filtering The field also supports wild cards type a question mark to match any single letter type an asterisk to match any number of arbitrary letters Selecting Hide Matching next to the Name Filter field inverts the filter you entered in the field so you see only those entries that do not match your search criteria For a guide to the icons in the Symbol Browser see Wind River Workbench User Interface Reference Symbol Browser View The Outline View The Outline view is to the right of the currently active Editor and shows symbols in the currently active file Use the Outline view to sort filter and navigate the symbols in the context of the file in the currently active Editor as well as to navigate out of the current file context by following call and reference relationships For a guide to the icons in the Outline view see Wind River Workbench User Interface Reference Outline View 171 Wind River Workbench User s Guide 3 0 Linux Version The File Navigator If you have never used the File Navigator you can open it by choosing Window gt Show View gt Other In the dialog that opens select Wind River Workbench gt File Navigator and click OK After the first time you open the File Navigator a shortcut appears directly under the Window gt Show View menu By default the File Navigator appears as a tab at the left of the Wind River
51. Wind River Workbench User s Guide 3 0 Linux Version view A view is a visual component within Workbench It is typically used to navigate a hierarchy of information like the resources in your Workbench open an Editor or display properties for the active Editor Modifications made in a view are saved immediately Only one instance of a particular view type may exist within a Workbench window workspace The directory where your projects are created To share the build objects of your projects with a target the workspace directory may be in a file system that is exported to the target or you may redirect build objects from your workspace to a location exported to the target 400 A adding application code to projects 162 new files to projects 163 subprojects 149 agent proxy 89 Analysis Tools 120 annotations in patches 135 application project Wind River Linux 13 attaching to core file 311 to running process 283 back end target server 231 ball sample program 37 basename mappings 235 Bellard Fabrice 61 Bookmarks tab 44 breakpoints conditional 259 converting to hardware 261 data 259 disabling 263 expression 259 hardware 259 Index line 259 refreshing 262 removing 263 restricted 259 unrestricted 259 Breakpoints view 257 bridging hosts 90 BSPs 81 build applications for different boards 204 architecture specific functions 207 library for test and release 204 make rule in Project Explorer 210 ou
52. Workbench supplies much of the tooling such as makefiles and other parts of the build system for the projects Wind River Linux Application Projects A Wind River Linux Application project is a managed build meaning Workbench supplies the makefile determines build order and provides macros build paths and build specifications build specs The build specs provided are based on the targets that are tested and supported by Wind River Linux Appropriate libraries cross development tools and so on are also provided so much of the traditional gathering and debugging of a working environment is eliminated Wind River Linux Platform Projects Wind River Linux Platform projects are designed for building the entire target platform including the kernel and file system They provide special tools to make platform configuration modification and maintenance easier Root file systems are easily built using default settings or you can configure the file system through a convenient GUI configuration tool that the project provides Default kernels are provided for supported targets and kernel configuration is also easily performed with a provided GUI configuration tool Wind River Linux Kernel Module Projects Wind River Linux Kernel Module projects provide an easy way to create kernel modules for Wind River Linux Platforms You can associate the kernel module with a platform and the kernel module automatically inherits the build environment of the p
53. Workbench window along with the Project Explorer and the Symbol Browser The File Navigator presents a flat list of all the files in the open projects in your workspace so you can constrain the list by using Working Sets You can configure and select working sets using the File Navigator s local pull down menu The left column of the File Navigator shows the file name and is active double clicking a file name opens the file in the Editor and right clicking a file allows you to compile the file and build the project among other tasks The right column displays the project path location of the file The File Filter field at the top of the view works in the same way as the Name Filter field in the Symbol Browser see The Symbol Browser p 171 Type Hierarchy View Use the Type Hierarchy view to see hierarchical typedef and type member information To open the Type Hierarchy view Right click a symbol in the Editor Outline or Symbol Browser view and select Type Hierarchy view a Click the toolbar button on the main toolbar Select Navigate gt Open Type Hierarchy For more information see the Wind River Workbench User Interface Reference Type Hierarchy View 172 10 Navigating and Editing 10 3 The Editor Include Browser By default the Include Browser appears as a tab at the bottom right To open the Include Browser Right click a symbol in the Editor Outline or Symbol Browser view and select Open Include Br
54. Working with Packages and Target File Systems p 121 Blue build nodes See the following table for what you can build or accomplish when you right click one of the blue build nodes and select an option Note that some build nodes are available only for projects for which you have selected the configure option for flash files Table 3 1 Build Nodes and Right Click Actions Build Node Options To Build Or to build_all All tools and the file system cramfs A CRAMFS file system Only present for Flash delete Clean the project file before removing a project by right clicking the project folder and selecting Delete deploy Deploy the project as described in 5 7 Automating Target Deployment p 138 export layer Extract the changes to a project into a shareable layer directory in the export directory with the timestamp in its name and added to source control See 3 10 Customizing Builds with Layers and Templates p 81 export sysroot Create a sysroots directory in the export sysroot directory which can be used for providing build specs See 2 3 1 Checking and Setting Your Build Specs p 37 fs A file system for your target import package Bring up a GUI applet to help you add external packages to a project 59 Table 3 1 Table 3 2 Wind River Workbench User s Guide 3 0 Linux Version Build Nodes and Right Click Actions Build Node Options To Build Orto jffs2 A JFFS2 file system Only p
55. a The output should display your current TIPC address for example 1 1 1 15 2 2 Running the usermode agent You must run usermode agent on each target you want to reach Find the correct agent for your target architecture in installDirfinux 2 x usermode agent 1 1 bin arch For example the correct agent for the PPC architecture when your installDir is WindRiver is WindRiver linux 2 x usermode agent 1 1 bin ppc usermode agent To launch usermode agent on the target 1 Copy it to the target 2 Change directory cd to the directory where it is located 3 Enter the following command usermode agent comm tipc amp For help in setting up usermode agent to run when the target boots see G Starting usermode agent at Boot Time 247 Wind River Workbench User s Guide 3 0 Linux Version 15 3 Configuring a TIPC Proxy The WDB proxy enables communication between the Workbench host and the TIPC target The target server on the Workbench host see 15 4 Configuring Your Workbench Host p 250 instructs the proxy agent to communicate using TIPC with a specified TIPC target address The WDB proxy agent is the wrproxy command or wrproxy exe with Windows The host that runs wrproxy must have TIPC capability To configure TIPC capability install the TIPC kernel module see 15 2 1 Installing the TIPC Kernel Module p 247 or build TIPC into the kernel and reboot it When you have TIPC support in the kernel configure the hos
56. a project 37 Eclipse environment 323 Editor bookmarks removing 47 parameter hints 42 editors 10 Embedded Debug perspective 73 GUlelements 7 help system on Solaris 339 on Windows 340 moving and sizing views 9 Outline view Index bookmarks creating 44 perspectives 10 Embedded Debug perspective 73 project source bookmarks creating 44 finding 44 removing 47 viewing 44 breakpoints modifying 80 running to 78 setting 78 file history viewing 47 Outline view 41 parameter hints 42 stepping into 76 string finding 42 symbol finding 41 version control 330 viewing 40 rebuilding a project 47 running sample program with Embedded Debug perspective 74 starting workspace specifying 6 stepping in project source 76 tabbed notebooks 9 terminology 7 viewing project source 40 views 9 Breakpoints 257 colored 293 Debug 288 Disassembly 301 Editor 173 Error Log 355 357 File Navigator 172 Include Browser 173 Outline view 41 Symbol Browser 171 Type Hierarchy 172 windows 8 workspace 6 working sets 170 407 Wind River Workbench User s Guide 3 0 Linux Version using 165 workspace directories 144 starting Workbench witha new 336 wrproxy command 375 wrws_import reference page 388 script 387 wrws_update reference page 383 script 383 wtxregd using a remote registry 238 X xconfig 116 408
57. a software system root project and give the working set a name When you click Finish your new working set will appear in the Select Working Set dialog s list of available working sets 9 After the first time you select a working set in the Select Working Set dialog the working set is inserted into the Project Explorer s drop down menu so that you can directly access it from there Use the Navigate Menu For day to day work there is generally no absolute need to see the contents of your software systems as presented in the Project Explorer Using the Navigate gt Open Resource to navigate files and Navigate gt Open Symbol to jump straight to a symbol definition may often prove to be the most convenient and efficient way to navigate within or among systems 9 6 Moving Copying and Deleting Resources and Nodes The resources you see in the Project Explorer are normally displayed in their logical as opposed to physical configuration see 6 5 Projects and Project Structures p 148 Depending on the type of resource file project folder or purely logical element target node you are manipulating different things will happen The following section briefly summarizes what is meant by resource types and logical nodes 165 Wind River Workbench User s Guide 3 0 Linux Version 9 6 1 Understanding Resources and Logical Nodes Resources is a collective term for the projects folders and files that exist in Work
58. adopted the CDT source code indexing and symbol browsing features to replace those that appeared in previous releases Workbench Parser Is Now the CDT Indexer Workbench source code parsing is now done by the CDT Indexer which is comparable in speed to the Workbench parser it replaces Parsing Build Output The Indexer provides build output parsing If you uncheck Enable project specific settings Workbench scans the output of the build to set up sources for indexing Only those sources that are part of the build process are indexed and all flags defines includes used by the build are used for the indexing You can manually initiate the re indexing of files in a project updating only those files that were modified or all files Updating of modified files happens automatically when they are saved but you can also initiate re indexing when a header file is touched Setting Indexer Preferences You can configure indexer specific exclusion filters using regular expressions Select a project choose Properties gt C C General gt Paths and Symbols gt Source Filters then edit the filter data and add a regular expression Indexer performance is affected by preference settings such as turning off indexing of type references to speed up the index you can still navigate typedefs but cannot search for C C references Sharing Symbol Data with a Team When you import a project from a team member s different workspace the shared in
59. an external location using the source files that come with the Workbench installation 1 Create anew user defined project by right clicking in the Project Explorer and selecting New gt User Defined Project so that the makefile in the supplied source will be used 2 If prompted select your target operating system 3 Inthe New User Defined Project dialog box assign a project name such as usermode agent 4 Select Create project at external location 5 Click Browse and locate the usermode agent source files located in installDirfinux 2 x usermode agent 1 1 src Click OK then Next 6 Inthe Project Structure dialog box click Next 7 Inthe Build Support dialog box select User defined build Leave the Build command text as it is for now Click Finish 8 Expand your new project in the Project Explorer Notice that the project contains the usermode agent source files as well as the project metafiles Scroll to the README file and double click it to open it in the Editor 9 Inthe README find the appropriate make text for your target architecture and copy it If you are building usermode agent for a Wind River Linux target refer to 3 5 Running Usermode Agent on Non Emulated Targets p 65 10 Inthe Project Explorer right click the project folder and select Properties Select Build Properties and in the Build Support tab replace the Build command text with the make text you copied from the README file substituting any val
60. an overview of documentation introduces Eclipse and cross development concepts and outlines how Workbench helps cross development Part II Getting Started provides an introductory tutorial that takes you from starting Workbench to using it to perform common debugging activities on sample applications in user mode Additional chapters build on this knowledge to show how to develop Wind River Linux platform projects and introduce kernel mode debugging Part III Projects provides detailed information on how to use projects in Workbench including pre defined projects user defined projects using the Project Explorer and a discussion of various advanced project scenarios Part IV Development describes how to use Workbench to edit source code build projects and parse and analyze source code symbol information Part V Target Management discusses connecting to targets and how to create new target connections Part VI Debugging provides an in depth look at debugging operations including launching programs managing breakpoints and troubleshooting Part VII Updating discusses integrating plug ins to Workbench Part VIII Reference describes how to use the command line to update workspaces for automated builds and to import projects It also provides source code for a program patch example a glossary and an index In this document italics mark terms being introduced as well as placeholders for values you supply Bold indicates l
61. and Editors Within a window each perspective may have a different set of views but all perspectives share the same set of Editors plug in An independent module available from Wind River the Eclipse Foundation or from many Internet Web sites that delivers new functionality to Wind River Workbench without the need to recompile or reinstall it program counter The address of the current instruction when a process is suspended project A collection of source code files build settings and binaries that are used to create a downloadable application or bootable system image registry The registry associates a target server s name with the network address needed to connect to that target server thereby allowing you to select a target server by a convenient name self hosted development environment The opposite of cross development The debugger and the application are running on the same machine source lookup path The source lookup path specifies the location that the Workbench debugger uses to identify and open each source file as it is being debugged This is set in the Debug view in Workbench standard build standard managed build Synonymous deprecated project build types suitable for projects with build structures similar to the file system structure 398 H Glossary symbol A preprocessor macro define Symbols can be defined by using the D compiler option as well as by define statements in source c
62. and times when the file was changed 2 Double click one of the list entries A Comparison Viewer dialog opens displaying the file on the left as it was at the date and time of the list entry that you double clicked To the right of the file display is the file as it was in the immediately preceding version 3 Move your cursor over the Compare Viewer s toolbar icons to read the functions provided such as copying changes from the left to the right file moving to the next difference or the next change and so on 4 Close the Compare Viewer If you see a Save Resource error notice that main c has been modified but is still open click Yes to save the changes you made 2 6 3 Rebuilding the Project To rebuild the ball project 1 Right click the ball folder at the top of the project tree 2 Select Rebuild Project Now the project builds without errors 47 Wind River Workbench User s Guide 3 0 Linux Version 48 Creating and Debugging Platform Projects 3 1 Introduction 50 3 2 Creating a Wind River Linux Platform Project 54 3 3 Building the Target s File System and Kernel 57 3 4 Configuring Target Connections 61 3 5 Running Usermode Agent on Non Emulated Targets 65 3 6 Testing Target Connections 67 3 7 Using the Remote System Explorer 67 3 8 Using the One Step Launch Configuration 69 3 9 Debugging an Application on the Target 72 3 10 Customizing Builds with Layers and Templates 81 3 11 Working with Extern
63. application and platform projects and also displays projects from other CDT providers In particular you might notice Right clicking a binary filename under the Binaries node allows you to launch and or debug the binary file Double clicking parses a binary file and displays the result in the Editor Double clicking a file under the Includes node displays header files The User Build Arguments field has moved to the Build Console toolbar You can still open the Project Navigator select Window gt Show View gt Project Navigator from the Workbench toolbar Other project related issues include You cannot drag and drop changes to project hierarchies and build target contents Instead select Project References gt Add as Project Reference to change relationships between projects You cannot drag images from the Project Explorer to target connections New data structures underlie the project system You can import projects created with a previous version of Workbench and they are automatically Wind River Workbench User s Guide 3 0 Linux Version updated to this new structure but you will not be able to open them in a previous version of Workbench Migration is forward only For more information about the Project Explorer see 9 Working in the Project Explorer also the C C Development User Guide available from the Workbench help system 1 7 2 Editing Source Files The Workbench Editor has been re
64. box Now try the new command 1 Right click the project and select Build Options gt Display Environment 2 Observe the output in the Build Log Note that only the PWD setting from the environment has the project s name in it Command sh c env grep samplePlatformProject PWD home user WindRiver Workspace samplePlatformProject This is about the most complicated shell command you should enter in this dialog It is generally better to have the command execute a script and pass parameters to it using hand selected parameters ones added from the project s variables as above or ones from the project s macro list Setting the Environment Without Starting a Sub shell In some cases it is not desirable to start a sub shell for example You are executing a script and do not want it to have to start a sub shell You have cshrc or profile files that override PATH or other variables whenever a sub shell is started NOTE Most command line Linux developers prefer to have absolute control over their environment settings This usage allows such developers to choose exactly when and what to add to the given shell for the task at hand 368 B Workbench and Command Line Techniques Exporting Environment Settings to the Current Shell The following command line can be used to output the environment variables to standard out wrenv sh p wrlinux 2 0 p print env f shell type The possible values for shell type include plain
65. build output analysis For both types of projects you can define additional include paths and symbols in the Paths and Symbols property page Setting Build Properties for Managed Projects Project creation wizards create default build targets unless you clear the Build Target name field on the Build Target wizard page A build target defines the build scope that is used by the indexer to process source code Files outside this build target are not parsed per default 177 Wind River Workbench User s Guide 3 0 Linux Version If there are no build targets all files are parsed otherwise you would end up with an empty index and no source analysis or navigation A build target must contain at least one source file If you delete all files from a build target and there are no non empty build targets in the project then nothing is parsed and the source navigation tools such as Type Hierarchy Call Tree etc will not work correctly To create a new build target select New gt Build Target from the main menu or right click the Build Targets node under the project in the Project Explorer and select New Build Target Then follow the instructions in the wizard You can use the build properties to control the whole build process For that purpose select the project in the Project Explorer view and navigate to the Build Properties page The available tabs are Build Support Build Targets Build Specs and Build Macros You can
66. c source2 c test c excluded v D LIB_test LIB_test out test c gt lib lib a When you build LIB_test lib a automatically gets built if it is out of date because of the reference to lib a in the LIB_test build target 12 5 Implementing Architecture Specific Functions This section describes architecture specific implementations at the folder and build target levels To allow architecture specific implementation of functions within the same project you can enable and disable build specs At project folder build target and file levels for flexible managed builds At the project and folder levels for standard managed builds deprecated but available if you check Enable deprecated standard managed build under Preferences gt Wind River gt Build Consider a simplified flexible managed build project with two subfolders arch1 and arch2 that each use code specific differences for different target architectures You can set up a project to build a software target that requires the implementation 207 Table 12 1 Wind River Workbench User s Guide 3 0 Linux Version of a function specific to different target boards where you only need to change the active build spec at the project level In this example suppose that the function int arch_specific void is declared in arch h and that arch1 c implements arch_specific void for the common_pc build spec the only build spec enabled f
67. cached such as from command line usage of Quilt Rename Patch Rename a specific or topmost patch Remove File from Patch Remove one or more files from the named or topmost patch 5 6 3 Using Quilt to View Patch Annotations Workbench supports a patch annotation feature using one of the facilities provided by Quilt 1 Inthe project container browse to a file below a given patch then select it 2 Right click the file and select Show Patch Annotations After a moment this file should appear 3 Scroll through the file and observe the colored bars in the left hand gutter 4 Hover the mouse over one of the colored bars 135 Wind River Workbench User s Guide 3 0 Linux Version After a few seconds a pop up box appears giving the name of the patch that contributed this line Observe that when one of these pop up boxes appear some number of boxes also appear in the gutter on the right These boxes indicate the other locations in this file that were contributed by this patch 5 6 4 Using Quilt to Import Source and SRPM Packages SRPM means Source Redhat Package Manager archives SRPMs are packages than contain the source and spec build rules rather than just the binary content that regular RPMs contain You can also use this procedure to import other packages as well To import source packages 1 2 136 Create a platform project Open its User Space Configuration node and use the Import Pa
68. cd to workspace ProjectName_prj 3 List the export and export dist directories The export directory contains The compressed runtime file system as a tar bz2 file named according to the board rootfs and kernel you chose for example arm_versatile_926ejs glibc_std_std dist tar bz2 A link to the default kernel for example arm versatile_926ejs default_kernel_image_WR2 0au_std The export dist directory contains the file system for your target Later it will contain the build output from the application s that you create 3 3 2 Building the Kernel The project you have created contains a default pre built kernel so you do not actually have to build a kernel at this time However you may do so To build a kernel for your project 1 Right click kernel_build within the project s folder in Project Explorer Choose Build Target 57 Wind River Workbench User s Guide 3 0 Linux Version 2 Look in the Build Console for reports on the build progress such as patch related steps configuration options many object o files and so on until you get to Creating rpm linux followed by a few dozen lines in red The build time depends on the size of the kernel source tree For the arm_versatile_926ejs board and std kernel this may be 20 minutes or more To find what you have built 1 Open a terminal window 2 Change directory cd to workspace ProjectName_prj 3 List the export and export dist directori
69. code the results delivered by build output analysis are much more accurate since the results reflect the actual build settings The impact on the build performance is minimal so you should leave this option enabled Disable this option only if the results are not sufficient The Discovery statistics section reports the number of discovered include paths symbols and source files and helps you to assess the correctness of the results In addition include paths and symbols are presented on the Include Paths and Symbols tab pages Use the Analyze build output file section to perform build output analysis on a build output file If a build output file already exists for your project then this is the fastest way to set up the indexer correctly without the need to build the whole project Specifying User Private Paths and Symbols Miscellaneous Tab The Miscellaneous tab page of the Paths and Symbols dialog specifies user private include paths and symbols The edit field takes most common preprocessor options such as I include D and so on Include paths I includePath and include files include headerFile can contain placeholders such as WIND_BASE Use include if you want the indexer to treat every source file in the project as if it were including the given header file This does not have any affect on any build settings Symbol options Dname or Dname value do not need any quoting for integer values For instance DMA
70. configuration list end of script When you start wrproxy with this script it gets configured as in the previous example and sends input and output to standard output wrproxy s wrproxy startup amp 2 6660 Executing startup script create type tcpsock port 23 tgt my_ target pport 1235 ok pport 1235 list ok pport 1235 type tcpsock port 23 tgt my_ target Since no control port was specified with the p option at startup the default port 17476 is used NOTE There is no password management in wrproxy If you want to be sure that no new connections tunnels are made remotely using the control port use the nocontrol option with the s startupscript option which will disable the proxy control port The startup script accepts the create list and delete commands as described in Configuration Commands p 379 378 D Configuring a Wind River Proxy Host D 3 wrproxy Command Summary D 3 wrproxy Command Summary The following section summarizes all of the Wind River proxy commands NOTE For all commands unknown parameters are ignored they are not considered errors In addition the client should not make any assumption on the number of values returned by the command as this could be changed in the future For example the create command always returns the value for pport but more information could be returned in a future version of the Wind River proxy Invocation Commands The wrproxy command accepts the
71. contained in it A 8 8 Target Server Output Log This log contains the messages printed by the target server while running These messages typically indicate errors during various requests sent to it such as load operations Upon startup if a fatal error occurs such as a corefile checksum mismatch then this error will be printed before the target server exits How to Enable Log Enable this log from the Remote Systems view by right clicking the target connection selecting Properties selecting the Target Server Options tab then clicking Edit Select the Logging tab then check the box next to Enable output logging and provide a filename and maximum file size for the log Click OK Enable this log from the command line using the 1 path filename and Im maximumFileSize options to the target server executable For more information about target server commands see Wind River Documentation gt References gt Host API and Command References gt Wind River Host Tools API Reference gt tgtsvr What is Logged Fatal errors on startup such as library mismatches and errors during exchange with the registry Standard errors such as load failure and RPC timeout What it Can Help Troubleshoot Debugger back end Target Server Target Agent 360 A Troubleshooting A 8 Error Logs Generated by Workbench Supported No You may send this log to Wind River support but no instructions are provided for how to interpr
72. directory or browse to workspacelprojectName_pyj Click Next For example enter home user workspace ballPlatform_prj The Target Server Connection for Linux User Mode dialog appears 3 Specify the root file system workspacelprojectName_prj export dist this is the file system to be exported to QEMU Click Next 61 Wind River Workbench User s Guide 3 0 Linux Version Target Server Connection for Linux User Mode Please configure the target server Backend settings Backend Processor default from target Target name IP address localhost v Check Port 4444 Target filesystem Root File System home user rod workspace sampleQemuPlatform EM The Object Path Mappings screen appears New Gonnection Object Path Mappings Specify how files in the target file system are visible in the host file system Available CPU s on target board default from target Note For more information about object path mappings please read the online El Load module symbols to debug server automatically if possible Pathname prefix mappings v Target Path Host Path Mf fhome user rod workspace sampleQemuPlatform_prj export dist Edit lt any gt lt leave path unchanged gt eA Remove 62 3 Creating and Debugging Platform Projects 3 4 Configuring Target Connections The object path mappings determine which part of the host file system gets NFS mo
73. does not copy them into your workspace Later if you want to delete a project check the path in the Confirm Project Delete dialog very carefully when deciding whether to choose Also delete contents under path or Do not delete contents choosing to delete the project contents may delete your original sources or the contents of a project in a different workspace rather than the project in your current workspace 162 9 Working in the Project Explorer 9 4 Opening and Closing Projects Adding New Files to Projects To add a new file to a project choose File gt New gt File You are asked to Enter or select the parent folder and to supply Filename For a description of the Advanced button and what it reveals press F1 and select New file wizard 9 4 Opening and Closing Projects You can open or close a project by selecting it in the tree and choosing Project gt Open if it is currently closed or Project gt Close if it is currently open You can also use the corresponding commands on the Project Explorer s right click context menu When you close a project The icon changes to its closed state by default grayed and the tree collapses All project member files that are open in the editor are closed All subprojects that are linked exclusively to the closed project are closed as well However subprojects that are shared among multiple projects remain open as long as a parent project is still open but can be c
74. file in the Editor Compare With Diff the specified file s in the topmost or specified patch Delete Patch Remove the specific or topmost patch 134 5 Configuring Wind River Linux Platforms 5 6 Using Quilt to Manage Patches Export Patch Export an existing or new patch file from your platform project to an external file so that it can be shared by other developers You can also import the exported patch file into a different project Files Display the list of files that the specific or topmost patch changes Fold Patch Integrate a patch into the topmost patch Specify the file directly or browse to it The tree shows the patch contents to verify the patch Import Patch Import external patches following the current top patch New Patch Create a new patch with a specified name and insert it after the topmost patch The patchname in the tree specifies whether the patch has been loaded or not Patches Display the list of patches that modified a specified file Pop Remove one or more patches from the stack of applied patches Click Details to see a list of the patches that have been removed and or restored as a result of the pop Push Apply one or more patches from the series file Click Details to see a list of which files are patched by the push Refresh Top Patch Refresh a specific patch or by default the top patch Reload Synchronize information that Workbench has
75. following for int var 0 var lt max var cursor Provided Templates Workbench provides the following templates Auto insert is turned on by default Name author catch class comment do else elseif for for if ifelse main namespace new stderr stdout switch try using Description author name catch block class declaration default multiline comment do while statement else block else if block for loop for loop with temporary variable if statement if else statement main method namespace declaration create new object print to standard error print to standard output switch case statement try catch block using a namespace Many template options are configurable in the Preferences see Wind River Workbench User Interface Reference Editor 174 10 Navigating and Editing 10 4 Search and Replace Configuring a Custom Editor Workbench has a single global mapping between file types and associated editors This mapping dictates which editor will be opened when you double click a file in the Project Explorer or when the debugger stops in a given file Configuring the custom editor through file associations will cause the correct editor to be opened and the instruction pointer to be painted in the editor gutter To view and modify the mappings go to Window Preferences gt General gt Editors gt File Associations NOTE Some debugger features require additi
76. following startup options p ort specify TCP control port If not specified the default of 0x4444 17476 is used This should be a unique number less than 65536 not used as a port by any other application and it should be greater than 1024 which is the last of the reserved port numbers V enable verbose mode v ersion print wrproxy command version number s startupscript specify a startup script that contains wrproxy configuration commands h elp print wrproxy command help nocontrol disable control port Configuration Commands You can use the following commands interactively and all except the connect command in a Wind River proxy startup script connect Create a new Wind River proxy connection and automatically connect to it Unlike the create command see create p 381 the connection is established immediately and all packets sent to the connection are immediately routed between the target and host 379 Wind River Workbench User s Guide 3 0 Linux Version Usage 380 connect type type mode mode proto proto connection_specific_parameters Where the arguments to the connect command are as follows type is udpsock UDP socket connection tcpsock TCP socket connection tipcsock TIPC socket connection Linux only mode describes how the connection is handled between the proxy and the client for example the Workbench host and is raw raw mode d
77. global build properties select Window gt Preferences and choose the Build Properties node This node allows you to select a project type then set default build properties to be applied to all new projects of that type 11 4 2 Project specific Build Properties To access build properties from the Project Explorer right click a project and select Properties In the Properties dialog select the Build Properties node The project specific Build Properties node has tabs that are practically identical to the ones in the Workbench preferences but these settings apply to an existing project that is selected in the Project Explorer 11 4 3 Folder File and Build Target Properties Folders files and build targets inherit reference project build properties where these are appropriate and applicable However these properties can be overridden at the folder file level Inherited properties are displayed in blue typeface overridden properties are displayed in black typeface Overridden settings are maintained in the wrproject file This file should therefore also be version controlled Note that you can revert to the inherited settings by clicking the eraser icon next to a field 196 11 Building Projects 11 5 Makefiles 11 4 4 Multiple Target Operating Systems and Versions If you installed Workbench for multiple target operating systems and or versions you can set a default target operating system version for new projects in the W
78. has changed on the target for example a new module was downloaded and the breakpoint is not automatically updated To refresh all breakpoints in this way select Refresh All Breakpoints from the Breakpoints view toolbar drop down menu 262 16 Managing Breakpoints 16 3 Manipulating Breakpoints 16 3 4 Disabling Breakpoints To disable a breakpoint clear its check box in the Breakpoints view This retains all breakpoint properties but ensures that it will not stop the running process To re enable the breakpoint select the box again 16 3 5 Removing Breakpoints There are several ways to remove a breakpoint Right click it in the Editor gutter select Remove Breakpoint Select it in the Breakpoints view click the Remove button Right click it in the Breakpoints view select Remove 263 Wind River Workbench User s Guide 3 0 Linux Version 264 17 Launching Programs 17 1 Introduction 265 17 2 Creating a Launch Configuration 266 17 3 Remote Java Launches 272 17 4 Launching Programs Manually 275 17 5 Controlling Multiple Launches 276 17 6 Launches and the Console View 281 17 7 Attaching the Debugger to a Running Process 283 17 8 Attaching to the Kernel 284 17 9 Suggested Workflow 285 17 1 Introduction Whenever you run a process or task from Workbench a launch configuration is automatically created for you A launch configuration is like a named script that captures the whole process of build
79. host Note that when you are using Workbench to analyze the core file you are not debugging an active process you are only examining the state and conditions of a process at the moment it failed to determine the cause of the failure 1 Click the Create a New Target Connection button in the Remote Systems view select Wind River Linux Application Core Dump Target Server Connection and click Next 2 Enter or browse to the path for the core dump file you wish to analyze in the Core dump file field 3 You can enter the CPU number for Force CPU number and the version of Linux for Force OS version The CPU number for your CPU can be found in the text file WIND_FOUNDATION_PATH resource target architecturedb For example the architecturedb file shows that the CPU number to enter for an XScale CPU is 1120 CPU_1120 cpuname xscale cpuFamilyName XSCALE 311 Wind River Workbench User s Guide 3 0 Linux Version The OS version value to enter is 2 6 NOTE The core file does not contain information on the type of CPU or the version of the operating system that it was created with If you get a Failed to connect target error message indicating a target CPU mismatch it is likely that specifying the CPU number and OS version will resolve it Enter or browse to the path of the application image that created the core dump file in the File field The command line your selections have created is displayed at the bottom of
80. http www windriver com support Wind River Workbench User s Guide 3 0 Linux Version Edition 2 18 Jan 08 Part DOC 16056 ND 01 Contents PART I INTRODUCTION 1 AI cee eee eee eee 1 1 Introduction sais sasassinssscasssssnararsnansnsanenensiaransstosonsisnshanavensasnshanataneneasntosassravensnaseotansaens 111 Tniroducine this Guide ssnsnirissiii i a 112 Introducing Wind River Workbench siwen L2 Starting Workbench sc Sessa cicesasraerivcsnicorsadintceinesmnracoementacinatemseaonenermbasaamenaeens 12 1 Starting Workbench on a Linux Host anciessmenmnmenoninnnmaniony 122 Starting Workbench ona Windows Host sssusa 123 Deciding which Workspace ty US s jcsacdsicsinemencnaneiaimeaninons 1 3 Recognizing Concepts in Common With Eclipse csscscsessssssseeeeeeeeeeees PENG errr ey pares errors ere tater eer erere eer tree ntrare er eeerre cere tee ree ViOWS since Reems Tabbed NotEDOgKE oiiinansinsaa aink Moving and Maximizing VIEWS sicciagiimniiannniaakannbanton EOTS prcsaniodahin a N Pern pee NVES aiiai A RERO 1 4 Understanding Cross Development Concepts sssssesessesseseeseesroscsseseeseeseosessesee Hardware in a Cross Development Environment cscecseeeeeeees Working in the HOSE csrivsrcisaea iiaia a siemens iii Wind River Workbench User s Guide 3 0 Linux Version Connecting the Target to the Host sagaisciadinceniiea encase 12 1 5 Building Different Types of Linux Projects sseseseessess
81. in the Memory view To set up the Device Debug perspective to match this tutorial do the following 1 2 Select Window gt Show View gt Memory Click the Memory tab at the bottom right drag it over the Build Console view wait for an icon of a set of stacked folders to appear at the cursor as you move it then drop the view Select Window gt Show View gt Expressions Right click in an empty area below the column label Expression select Add Watch Expression enter the grid global variable grid under Name and press ENTER The memory address of the grid global variable appears in the Value column This address can vary from one session to another if something changes for example if you compile with the GNU compiler instead of the Wind River compiler The Device Debug perspective now appears approximately as shown 75 Wind River Workbench User s Guide 3 0 Linux Version B creation log ce main c Debug SAE a v int main void i e NHL RZ BR To i v ball out SimulatedQMU WRLinuxUser_Ic BALL p V ball out 1839 Task Mode D Sota seed 3 a j V amp ball out 1839 Stopped Breakpoi y gridInit l r o srand seed stop here and set seed Breakpoints 2 o initial ball arrangemen k Poan Se a E g v for i 0 i lt num hard i hardNew for i 0 i lt num_soft i Y Te pj erro l Tas Pro 5 Pro Q Me XN meui E con
82. in13 6 2 Remote Registries p 238 227 Wind River Workbench User s Guide 3 0 Linux Version 13 2 The Remote Systems View A connection to a Target Server must be defined and established before tools can communicate with a target system All host side connection configuration work and connection related activity is done in the Remote Systems view by default at the bottom left of Workbench It is available in the Application Development and Device Debug perspectives If the view is not visible choose Window gt Show View gt Remote Systems or if not listed there choose Window gt Show View gt Other The most import tasks in the Remote Systems view are Defining new connections Connecting to targets Disconnecting from targets Once you have connected to a target more commands are enabled on the right click context menu see also 17 Launching Programs 13 3 Defining a New Connection All connections types are defined from the Remote Systems view see 13 2 The Remote Systems View p 228 To open the New Connection wizard either use the appropriate toolbar button or right click in the Target Manager and select New gt Connection The first thing the New Connection wizard asks you to do is to select one of the following connection types Wind River Linux Application Core Dump Target Server Connection Create a new connection to a Linux 2 6 application core dump see 19 Analyzing Core Files
83. installing and using the shared installation For example you could mount an NFS export from the network server locally on a Linux host on net You then cd to the installation directory under net and install Workbench and Linux there To run Workbench you would reference the same directory for example cd net installDir startWorkbench Do not log on to the remote server and run Workbench using the path that is local to that server You must create a wind directory at the shared location that is accessible to all users This is required for the Remote Systems view NOTE You can make the rest of the installation read only if you like only the wind directory must allow general access 371 Wind River Workbench User s Guide 3 0 Linux Version Note that Workbench will continue to use the workbench version in your home directory and that you can also have a local workspace You must install Workbench on the shared installation server and you must install it first This applies even if you are going to be using a local installation of Workbench The Workbench installation on the server provides some necessary support for the Wind River Linux installation that you perform after Workbench is installed You must use the appropriate installation license key Do not for example use a key for a platform development installation if you are installing an application development environment because this will
84. it as described in the following sections you close it by right clicking the Sftp Files node and choosing Disconnect See Step 2 in Browsing the Target s File System p 68 When you re open Stfp Files or Root Workbench reconnects you to the target and you can continue browsing copying files and issuing remote shell commands 67 Wind River Workbench User s Guide 3 0 Linux Version NOTE This feature requires ftp and ssh on the host which small file systems currently do not by default include For another approach to working with the target file system from within Workbench see 5 5 Working with Packages and Target File Systems p 121 Browsing the Target s File System To browse the target s file system using RSE 1 Start the usermode agent on the target in background mode as explained in 3 5 Running Usermode Agent on Non Emulated Targets p 65 It should already be running if you have achieved a target connection 2 Expand the remote system connection in the Remote Systems view so you can see the nodes Sftp Files and within that Root 3 Click Root to open it 4 Enter the username root and password root in the dialog box Browse the target s file system under Root Copying Files Within the Target File System To copy files within your target s file system 1 Browse to the file under the Root 2 Right click the filename and select Copy 3 Browse to where you want to place the file and s
85. mode This is useful to have the listening information port number listening connection type and the target server connection to this usermode agent The help or h option displays all the possible startup options for the usermode agent 254 16 17 18 19 PART VI Debugging Managing Breakpoint ccccceeeeeeeeeeeeeeeeees 257 Launching Programs Debugging Projects Analyzing Core Files 255 Wind River Workbench User s Guide 3 0 Linux Version 256 16 Managing Breakpoints 16 1 Introduction 257 16 2 Types of Breakpoints 258 16 3 Manipulating Breakpoints 262 16 1 Introduction Breakpoints allow you to stop a running program at particular places in the code or when specific conditions exist This chapter shows how to use the Breakpoints view to keep track of all breakpoints along with their conditions if any You can create breakpoints by double clicking or right clicking in the Editor s left vertical ruler also known as the gutter or by opening the various breakpoint dialog boxes from the pull down menu in the Breakpoints view If you are using the CDT GDB debugger for native mode self hosted applications as described briefly in 2 2 3 Debugging Self Hosted Applications with the CDT GDB Debugger p 35 note that some breakpoint actions always create breakpoints exclusively for the Wind River debugger This applies to all actions in the Breakpoints and Tracepoints submenus
86. multiple unrelated source code trees you can use multiple workspaces Some considerations when deciding where to create your project Create project in workspace Leave this selected if you want to create the project under the current workspace directory This is typical for Projects created from scratch with no existing sources Projects where existing sources will be imported into them later on for details see 9 3 Adding Application Code to Projects p 162 Projects where you do not have write permission to the location of your source files Create project at external location Select this option click Browse then navigate to a different location if you want to create the project outside the workspace This is typical for Projects being set up for already existing sources removing the need to import or link to them later on Projects being version controlled where sources are located outside the workspace 144 6 Projects Overview 6 3 Creating New Projects Create project in workspace with content at external location Select this option click Browse then navigate to your source location if you do not want to mix project files with your sources or copy sources into your workspace This is useful for Projects where you do not have write permission to the location of your source files Projects where team members have their own projects but share common sometimes read only source files This opt
87. objects within the build target so you can apply the same build settings to them they also provide a way to add files with the same name from different locations To add contents to your virtual folder right click it in the Project Explorer and select Edit Content Select content as described in step a above and click Finish 5 To adjust the order of the build target contents select items in the right column and click Up Down or Remove NOTE Folders appear in the specified place in the list but the files within them are added alphabetically 6 When you have configured your build target click Finish It appears in the Project Explorer under the Build Targets node of your project Modifying Build Targets There are several ways to modify your build target once it has been created Editing Content To add additional items adjust the order or make any other changes to your build target right click it in the Project Explorer and select Edit Content The Edit Content dialog appears with the build target content displayed in the right column Adjust the contents as necessary then click Finish Renaming Build Targets and Virtual Folders To rename your build target or virtual folder select it in the Project Explorer press F2 and type a new name 192 11 Building Projects 11 2 Configuring Managed Builds Copying Build Targets To copy a build target right click the build target and select Copy then right clic
88. option is set then you can also specify the serial link device to use rather than the default one dev ttyAMA1 and the baud speed for the serial link 115200 is the default baud speed To set a different device for the serial link connection the flag dev has to be used with the comm serial option For the baud speed you need to set the baud option combined with the comm serial option Example To launch the usermode agent using serial link connection and serial device dev ttyS0 usermode agent comm serial dev dev ttys0 Example To launch the usermode agent using serial link connection with default serial device and baud speed of 19200 252 usermode agent comm serial baud 19200 15 Connecting with TIPC 15 5 Using usermode agent with TIPC Example To launch the usermode agent using serial link connection with serial device dev ttySO and baud speed of 19200 usermode agent comm serial dev dev ttySO baud 19200 If the tipc option is set then you can also specify the port type default is 70 and port instance default is 71 of the TIPC connection To set a different port type or instance use the flag tipcpt or tipcpi in either decimal or hexadecimal format Examples To launch the usermode agent using TIPC network connection with default port type and default port instance usermode agent comm tipc To launch the usermode agent using TIPC network connection with specific port type 123 and
89. return any results 186 10 Navigating and Editing 10 5 Configuring the Indexer for Source Analysis The current include paths symbols and build scope will be used to re parse all files thus source navigation gives the most accurate results after performing a full rebuild Update with Modified Files Right click the project in the Project Explorer and select Index gt Update with Modified Files in order to parse modified and newly added files Freshen All Files Right click the project in the Project Explorer and select Index gt Freshen All Files in order to re parse previously parsed files with the current include path and symbol settings For either option the current include path and symbol settings defined for the project are used when parsing files 10 5 5 Sharing Source Analysis Data with a Team You can create a project index to be shared with project team members Such a team shared index holds a snapshot of source analysis data retrieved by parsing the project When a project is imported this significantly reduces the initial parsing time for a project because only modified files are parsed as compared with parsing all when the index was created After the project is imported only the pre filled project index is used the team shared index has no further relevance In order to create and share an index LON Oh ae ee Chae Right click a project in the Project Explorer Select Export In the Expo
90. run The error condition commands are executed in reverse order of the sequence in which the launches occurred For example if the fourth launch fails the error condition command of the fourth launch is performed then the error condition of the third launch and so on This is to deal with situations in which previous commands may have acquired locked resources unlocking them in reverse order is important to prevent potential deadlock NOTE To be precise error commands are called in the reverse order that the pre launch commands were called An error command will never be called for a sub launch that did not pass the pre launch command step Inserting Commands using an Empty Sub Launch You can place a command into your Launch Control that is not associated with any particular sub launch by adding an empty Launch Control to hold the command Select Launch Control and click New and then specify a name for the dummy launch for example Empty Launch Add the empty launch to the Launch Control and use the properties page to insert commands into the launch which are not associated with any particular sub launch Running All Pre Launch Commands First If you want to run each of the pre launch commands for each launch first check Run Pre Launch command for all launches first on the main launch control page The pre launch commands will be executed in order and only after they are all 278 17 Launching Programs 17 5 Controlling Multiple
91. spec information 1 Right click the application project and select Properties gt Build Properties 2 Inthe Build Support and Specs tab click Import 3 Inthe Import wizard select Import build settings select Default settings in the list and below the list select Import specific build specs Click Next 4 On the next page you will see the four default build specs provided in the Wind River Linux Platforms installation and any new sysroots you exported 5 Select the desired new sysroot and click Finish You have now imported a single new sysroot into the existing application project 39 Wind River Workbench User s Guide 3 0 Linux Version 2 4 Using the Editor In this section you exercise various aspects of the built in editor before moving on to the next section to build the project If you want to skip this introduction to the editor continue with 2 6 3 Rebuilding the Project p 47 The editor can emulate the vi or emacs editors To set your preference click the appropriate icon in the top toolbar Refer to additional editor preferences in Window gt Preferences gt General gt Editor and to additional online information at http help eclipse org 2 4 1 Changing File Preferences To open a source file and change its properties for example its font properties 1 40 Expand the ball folder and double click main c The main c file displays in the editor using a fixed font and preference bas
92. specific to it You create a launch configuration based on a launch type specifying the appropriate attribute values You then initiate a launch based on a launch configuration Launches also have a mode the two standard modes being Run and Debug A launch may be initiated by the Run or Debug buttons in Workbench launches may be initiated other ways too Note that some launch types are only available in one mode For example the Remote Java Application launch type can only be used in Debug mode Configuring a Launch Sequence The following procedure assumes you have two or more launch configurations already defined see 17 2 Creating a Launch Configuration p 266 1 Select Run gt Debug and the Debug dialog opens 2 Select Launch Control from the Configurations list on the left and then click New at the bottom A new launch control configuration with the default name New Configuration appears Change the name as desired 276 17 Launching Programs 17 5 Controlling Multiple Launches 3 Select the Launch Control tab Note that your current launch configurations are listed under Available Configurations on the left and a space on the right is labeled Configurations to Launch 4 Select each launch that you want to add to your new launch configuration and click Add to add it to the list of configurations to launch When you have a list of configurations to launch you can organize them in the order you want them to launch by sel
93. stopped events and or on running events You can select all options if you like Target State Refresh Settings Specify that the target state is refreshed only when you manually choose to do so or if and how often the display should be refreshed automatically Listen to Execution Context Life cycle Events Specify whether Workbench should listen for life cycle events or not 13 5 5 Connection Summary Page Target Server Connection This page proposes a unique but modifiable Connection name and a Summary of name and path mappings Use the Back button to modify them Shared This option serves a dual purpose When you define a target connection configuration this connection is normally only visible for your user id If you define it as Shared other users can also see the configuration in your registry provided that they connect to your registry by adding it as a remote registry on their computer see 13 6 2 Remote Registries p 238 Normally when you disconnect a target connection the target server and simulator are killed because they are no longer needed In a connection that is flagged as Shared however they are left running so that other users can connect to them In other words you can flag a connection as shared if you want to keep the target server and simulator running after you disconnect or exit Workbench Immediately connect to target if possible If you do not want to connect to the target immediately
94. target open to observe possible errors when you run the program You are now ready to connect Workbench on your host to the agent on the target If you want to build usermode agent for a Wind River Linux target but in an external location see 3 11 2 Building usermode agent at External Locations p 85 66 3 Creating and Debugging Platform Projects 3 6 Testing Target Connections 3 6 Testing Target Connections Once you have configured a target connection and started usermode agent on the target you can connect to the target from Workbench To make and verify the connection 1 Select the target connection in the Remote Systems view 2 Click the green Connect Connection_name icon in the Remote Systems toolbar 3 Expand the target connection in the Remote Systems view so you can find the Processes node 4 Find the list of processes the target is running One of these will be usermode agent Later when you have completed running and or debugging your application you can close the connection 1 Highlight it in the Remote Systems view 2 Click the red Disconnect Connection_name icon 3 7 Using the Remote System Explorer The Remote System Explorer RSE allows you to Browse a remote target s file system Browse your host s target system Copy files from directory to directory within the target Issue remote shell commands to your target Once you have opened the Remote System Explorer and used
95. the LIB project and choose New Build Target b Name the new target LIB_test in the Build target name field c Set the Build tool to C Linker d Clear the Use default content check box e Click Next 4 Specify the contents of the test library a Right click the green LIB_test build target and choose Edit Content The Content Definition dialog opens b Select sourcel c and click Add Do the same for source2 c Content Definition Specify files folders projects or build targets to add to LIB test Filtering O Show all projects Workspace Content V E LB Wind River Linux Platform 2 0 Applic Name Workspace path v Build Targets amm_versatile_926ejs gl teste MBrestc mig gets arm_ 2 is 91 fadd Virtual Folder Losas LIB test c if lib lib a TA lib UB ib A sourcel c source2 c test c c Click Finish 5 Exclude test c from your LIB a library a Expand the LIB recursive build target to reveal the filenames b Right click test c and choose Exclude from Build Target 206 12 Building Use Cases 12 5 Implementing Architecture Specific Functions Your finished LIB project should now contain two build target nodes Lib a built from sourcel c and source2 c LIB_test built from lib a and test c up Wind River Linux Platform 2 0 Application Pre z me Build Targets amm_versatile_926ejs glibc_std v lib lib a V LIB recursive e sourcel
96. the call tree of the current selection see Wind River Workbench User Interface Reference Call Tree View CTRL I Open the include browser to view the includes of the current selection see Include Browser p 173 Keyboard shortcuts that open dialogs from which you can access symbols in any of your projects SHIFT F3 Display the Open Symbol dialog SHIFT F4 Display the Open Type Hierarchy dialog 170 10 Navigating and Editing 10 2 Wind River Workbench Context Navigation ALT SHIFT H Display the Open Call Tree dialog CTRL SHIFT R Displays the Open Resource dialog These options are also available from the Navigate toolbar menu The Symbol Browser By default the Symbol Browser is a tab in the left pane of the main window together with the Project Explorer Use the Symbol Browser for global navigation Because the Symbol Browser presents a flat list of all the symbols in all the open projects in your workspace you might want to constrain the list by using Working Sets You can configure and select working sets using the Project Explorer s local pull down menu In addition very large symbol loads can cause delays of up to several minutes while Workbench loads the symbols Loading smaller batches of symbols can decrease this delay Specify the size of the symbol batch using the Preferences dialog For more information see Wind River Workbench User Interface Reference Debug View Text Filtering
97. the following while statement by double clicking in the gutter next to the while statement 78 3 Creating and Debugging Platform Projects 3 9 Debugging an Application on the Target To watch the balls move display global grid in the Memory window and place a breakpoint with property Continue on Break enabled at either the next statement or at the for statement for a more detailed view while finished for p pMovableBalls p NULL p p gt pNextMovable p gt pBallMove p return 0 A blue dot appears in the gutter The Breakpoints view displays the module and line number of the breakpoint Breakpoints 2 C E Ea S a e E A ball main c 88 Planted Restricted Scope NOTE If no comment appears above the while statement click the symbol in the gutter next to it to unfold the comment You can click the symbol again when you are done reading the comment to fold it away Press F8 or click the Resume icon in the Debug view s toolbar to run to the breakpoint Execution stops each time it hits the breakpoint The Memory view changes each time you resume execution The highlighting in the following figure indicates changes after the first refresh 79 Wind River Workbench User s Guide 3 0 Linux Version Renderings 0x000117B0 0x000117C0 0x000117D0 0x000117E0 0x000117F0 0x00011800 0x00011810 0x00011820 0x00011830 0x00011840
98. the target image and appear that way in the live target file system as opposed to those belonging to the host s root account The Filesystem Layout window displays A list of directories and files that comprise the file system of the target that you are building To see this mode click the View icon to the far right of the Pattern Filter field and choose Flat A list of packages within the file system of the target that you are building To see this mode click the View icon to the far right of the Pattern Filter field and choose Packages Filesystem Layout components act as follows 122 The Pattern Filter field lets you enter and apply filters to the view allowing you to specify for example all files with a pl extension The Filter icon to its right activates the filter letting you mark the results for deletion if you wished The filter works on all the packages so you could remove unneeded Perl scripts from them all for example The View icon to the far right selects the file system or package view The file and package list specify file mode size type owner group package and location You can change file and package attributes such as read write permissions and ownership Right click to mark directories to be created in or removed from the file system you can also create nodes pipes and devices in the generated file system The Filesystem line below the list annotates the size of files or packages added o
99. their local source packages This however added a huge refresh penalty due to the 10 000 to 40 000 files that can appear in that tree This link is no longer included by default If you need to browse the build directory use Source Analysis or the Quilt patch mechanism right click the project and select Add link to build folder Disabling Workspace Refresh on Startup You may choose to disable the automatic workspace refresh when starting Workbench particularly when you have one or more platform projects This is done by selecting Window gt Preferences gt General gt Startup and Shutdown and un checking Refresh workspace on startup When you need to browse the build tree you can always manually refresh that directory by right clicking on the project or specifically the build entry and selecting Refresh 345 Wind River Workbench User s Guide 3 0 Linux Version Workbench Freezes No Response to Mouse Clicks Sometimes Workbench will not immediately refresh its screen or respond to mouse or keyboard actions This is often due to a a garbage collection timeout or b running low on real and virtual memory In Wind River Linux Platform Projects the heap allocation amount can rise and fall 40Mbytes at a time and will often rise to 500 MB in size You can track this behavior be enabling Workbench heap status monitor with the command Windows gt Preferences gt General gt Show Heap Status The heap monitor will appear
100. true if you associate a file type with the CDT editor it will open when those files are debugged even if you have made an association with a different editor using Open With 328 22 Using Workbench with Version Control 22 1 Introduction 329 22 2 Using Workbench with ClearCase Views 329 22 1 Introduction This chapter provides tips on using Workbench with version controlled files which Workbench project files you should add to version control when archiving your projects and how to manage build output when your sources are version controlled 22 2 Using Workbench with ClearCase Views When using Workbench with ClearCase dynamic views create your workspace on your local file system for best performance For recommendations about setting up your workspaces and views see Help gt Help Contents gt Rational ClearCase SCM Adapter gt Concepts gt Managing workspaces Wind River does not recommend that you place the Eclipse workspace directory in a view private directory If you create projects in the default location under the 329 Wind River Workbench User s Guide 3 0 Linux Version workspace directory ClearCase prompts you to add the project to source control This process requires all parent directories to be under source control including the workspace directory Instead create workspace directories outside of a ClearCase view If you want to create projects under source control you should clear the Create p
101. view for the following purposes To examine a program when you do not have full source code for it such as when your code calls external libraries To examine a program that was compiled without debug information When you suspect that your compiler is generating bad code the view displays exactly what the compiler generated for each block of code 18 4 1 Opening the Disassembly View Unlike other Workbench views the Disassembly view is not accessible from the Window gt Show View menu it appears automatically if the Debug view cannot display the appropriate source code file in the Editor it appears as a tab in the Editor labelled with the target connection being debugged The Disassembly view can be opened manually by clicking the Debug view s Toggle Disassembly Instruction Step Mode toolbar button and by right clicking in the Stack Trace view and selecting Go To Code 18 4 2 Understanding the Disassembly View Display The Disassembly view shows source code from your file when available interspersed with instructions generated by the compiler As you step through your code the Disassembly view keeps track of the last four instructions where the process was suspended The current instruction is highlighted in the strongest color with each previous step fading in color intensity If the Disassembly view displays a color band at the top and bottom here the band is blue then it is pinned to the process with th
102. visible right click the project and select Add Links to Development Folders Open the folder of the desired package then open the patches folder 4 Right click the project select Quilt gt Import Patch and select the exported patch 5 Observe that this patch file is added to the package s patch list and put into this patches folder 5 7 Automating Target Deployment Table 5 1 You can reboot your target with your latest kernel and file system builds using the deploy target in the Project Explorer Edit the installDir wrlinux 2 0 wrlinux deploy conf in file to include the values as shown in Table 5 1 deploy conf in Values Field and Value Description USER validUser Substitute your user name for validUser You will be prompted for the root password during deployment TARGET_FS_DIR Replace the provided path with the nfsRoot targets safeToDelete path on the host that the target testTarget fs mounts as its root file system The path must contain the string safeToDelete 138 Table 5 1 5 Configuring Wind River Linux Platforms 5 7 Automating Target Deployment deploy conf in Values Field and Value Description TARGET_SHUTDOWN_COMMAND Replace targetServer with the name echo ssh targetServer or IP address of your target server targetCmds targetShutdown and replace targetCmds targetShutdown with the full path to the command you use to shut down the target TARGET_REBOOT_COMMAND Replace target
103. 0 3 Creating and Debugging Platform Projects 3 4 Configuring Target Connections 3 4 Configuring Target Connections This section explains how to create and configure connections to 3 The QEMU Quick Emulator target emulator using a QEMU connection Ei An actual hardware target 3 4 1 Creating and Configuring QEMU Connections If you are connecting to an actual non emulated hardware target skip to 3 4 2 Configuring Hardware Target Connections p 63 QEMU an open source machine emulator written by Fabrice Bellard allows you to configure the kernel and root file system for emulated boards for which Wind River has created board support packages BSPs such as the Common PC and ARM Versatile AB 926EJS QEMU loads the kernel found in the project build directory s export directory and NFS mounts the file system within the export dist directory Unlike configuring hardware targets for which you can place the kernel and file system in any location on your host system to be NFS mounted QEMU requires specific locations To create and configure a QEMU connection for an emulated target 1 Create a QEMU target server connection a Right click in the Remote Systems view and select New gt Connection The Select Remote System Type dialog appears b Select Wind River Linux gt Wind River QEMU Linux User Mode Target Server Connection then press Next The QEMU Simulator Configuration screen appears 2 Specify the project s root
104. 0 32 221 Building the Hello World Applicaton siccuccc cise 32 2 6 Creating and Debugging Platform Projects c ssssssesnenees 3 1 Contents 2 2 2 Debugging hello_world with the Wind River Debugger 005 2 2 3 Debugging Self Hosted Applications with the CDT GDB Debugger 3 Creating a Cross Debug Mode Project sc ccsccsossassecssccnovsnsinssrectesesonnsecseynicnonesinves 23 1 Checking and Setting Your Build Specs crisis sosericansmsonssirvinunionsnirs 232 Creating a Wind River Linux Application Project 1 1 0 25 3 Iniporiing Existing Source Piles sicscncsismonccammantraramaunmncen 234 poring Buld ped sccumnninemunnnnammmamananeea TA eri a DOON srini RA ERAR 24 1 Changing Pile Preteretices cronni R 2A2 Navigating in tie OOWEE so cstdinisenamninsrnnmarinnmmanveninnas Using the Outline View Finding Elements Finding Strings 2 4 3 Using Code Completion to Suggest Elements 244 Getting Parameter Hints for Routine Data Types 24 5 Finding Beginning and End of a Code Section sscccssecsecsecseeeseeens 2 4 6 Using Bookmarks Introducing an Error for this Tutorial cccccsseseseeseeteeees Creating the Bookmark to the Error Locating and Viewing the Bookmark Configuring Project Build Properties sccccsescsssssinesssssesinsssnssaenesssnosesoreseniniontoses Building the Project and Correcting Simple Errors ssssessessssessessesseeneeees 241 Buil
105. 18 2 6 Debugging Multiple Target Connections You can debug processes on the same target using multiple target connections simultaneously An example of this setup is a Linux target that has a user mode ptrace agent installed for debugging processes and an OCD connection for halting the system and debugging the kernel In this situation if the system is halted using the OCD system mode target connection the user mode ptrace agent will also be halted and the user mode target connection will be lost When the system is resumed the user mode target connection will be re established 295 Wind River Workbench User s Guide 3 0 Linux Version The Remote Systems and the Debug views if a debug session is active both provide feedback in this scenario The Remote Systems view hides all the process information that was visible for the target and displays a label back end connection lost next to the target node The Debug view does not end the active debug session but it shows it as being unavailable in the same manner as if the debug mode was switched 18 2 7 Disconnecting and Terminating Processes Disconnecting from a process or core detaches the debugger but leaves the process or core in its current state Terminating a process actually kills the process on the target NOTE If the selected target supports terminating individual threads you can select a thread and terminate only that thread 18 2 8 Using the Debug View to
106. 2A6 9 0x00040460 3D800004 0x00040470 38841414 7 0x00040480 4082000C 0x00040490 83E1000C 0x000404A0 4E800020 0x000404B0 93C10010 0x000404C0 3BFF1750 3 0x000404D0 3D200004 3 The Eclipse Memory View Replaces the Workbench Memory View The new view for example replaces tabs with monitors Renderings one of which is installed change how you look at memory Find and Replace are similar so is the delay for searches over large memory ranges SNF import and export are no longer supported and there is no S record format for 64 bit import and export Drag and drop to the Memory view is not supported See the C C Development User Guide available from the Workbench help system 21 Wind River Workbench User s Guide 3 0 Linux Version Workbench Registers View is Replaced by the Eclipse Registers View The Eclipse Registers view now contains On Chip Debugging OCD extensions The Properties view was removed because bit fields are now editable in place in the Registers view The Details pane at bottom of view displays the register value in each radix Old Workbench Registers View Local Variables Watch Registers gt Memory D A amp E Name Yalue Description a ro 0x00000000 General Purpose Register 0 rl OxFFFFFS40 General Purpose Register 1 r2 0x00000000 General Purpose Register 2 r3 0x00000001 General Purpose Register 3 r4 OxFFFFF448 General Purpose Register 4 r5 OxFFFFFFIS General Purpose
107. 2xx on the host In most cases Workbench provides correct defaults If necessary click Add to add new mappings or select existing mappings and click Edit to modify existing mappings NOTE You cannot edit the supplied default mappings Basename Mappings Use square brackets to enclose each mapping of target file basenames left element to host file basenames right element separated by a semi colon Mapping pairs in square brackets are separated by commas You can use an asterisk as a wildcard For example if debug versions of files are identified by the extension unstripped the mapping unstripped will ensure that the debugger loads yourApp unstripped when yourApp is launched on the target 13 5 4 Target State Refresh Page Since retrieving status information from the target leads to considerable target traffic this page allows you to configure how often and under what conditions the information displayed in the Remote Systems view is refreshed These settings can be changed later by right clicking the target connection and selecting Refresh Properties Available CPU s on Target Board Workbench can correctly identify the target CPU In rare cases a close variant might be misidentified so you can manually set the CPU here 235 Wind River Workbench User s Guide 3 0 Linux Version Initial Target State Query and Settings Specify whether Workbench should query the target on connect on
108. 454 Task Mode Y ipenguin out 3454 Stopped Breakpi BALL Move b_main cpp 128 AR 126 POINT new_position x z 08048b6e lea eax ebp 0x10 inant ences 08048b71 mov dword ptr esp eax 08048b74 call POINT POINT 3 127 0 Breakpoints amp Er s fi fi d 08048b79 lea ecx ebp 0x18 eRe 2 BES 08048b7c mov eax dword ptr ebp 8 penguin source b_main cpp 28 Planted 08048b7f add eax 0x14 O8048b82 mov edx dword ptr eax 4 128 new_position position change 08048b85 mov eax dword ptr eax 08048b87 mov dword ptr esp 8 eax 08048b8b mov dword ptr esp 0xC edx ILe O8048b8Ff mov eax dword ptr ebp 8 08048b92 add eax O0xC O08048b95 mov dword ptr esp 4 eax 08048b99 mov dword ptr esp ecx 08048b9c call POINT operator General General 08048bal sub esp 4 eat OxBFAASC18 08048ba4 mov eax dword ptr ebp 0x18 EE EEE seer Also you can see at line 126 the call to the parent class constructor POINT POINT which creates a new POINT object for the local variable new_position Additionally you can see the call for line 128 to the parent class operator method POINT operator NOTE This is all hidden when you debug just at the source code level 300 18 Debugging Projects 18 4 Using the Disassembly View 18 4 Using the Disassembly View Use the Disassembly
109. 6 Building the Project and Correcting Simple Errors If you completed 2 3 Creating a Cross Debug Mode Project p 37 the ball project folder includes the files needed to build and debug the program In 2 2 Running Hello World in a Native Mode Linux Environment p 32 you chose to run on the local host because the target connection was the localhost connection In this example you build the program with cross development tools that generate a build target for your target architecture The example uses a Power PC target but you can substitute your target architecture if it is different Depending on your Wind River Linux installation the installDir gnu directory contains appropriate tools for your licensed architecture including the C language cross compiler 2 6 1 Building a Project with Introduced Errors In 2 4 6 Using Bookmarks p 43 you introduced an error in the ball program source code that you will fix in the following procedure which demonstrates how to find and fix build errors using Workbench To fix build errors 1 Inthe Project Explorer right click the ball folder and select Build Project 2 Click New Build Target and click Finish in the resulting Build Target dialog thereby accepting the default names 3 Click Continue if a prompt appears concerning the include search path NOTE If necessary add usr include to the include search path Build output displays in the Console tab and entries also appear in the Prob
110. 7 Click the Access tab and allow access to everyone or specifically select the user s you want to have access If you want to add specific access for a user that does not appear in this tab you must add them with Preferences gt Samba Users as done previously 8 Click OK 9 Start usermode agent for example installDir linux 2 x usermode agent bin ia i386 usermode agent amp Configure the Windows Host The following steps assume a Windows XP host If you are using a different version of Windows there may be some difference in the commands required 1 Right click My Computer or select Tools in Windows Explorer and select Map Network Drive 2 Choose a network drive for example W and enter your hostname or IP address and the share workspace for example remotebox remote_ workspace 3 Click Finish NOTE If you limited access to specific users you will be prompted to log in with the user name and Samba password 219 Wind River Workbench User s Guide 3 0 Linux Version Configure Workbench 1 Start Workbench on your Windows host and use the exported workspace If Workbench prompts you for a workspace on startup enter the drive you mapped to the workspace for example W Alternatively once Workbench has started specify the drive from within Workbench by selecting File gt Switch Workspace Select Project gt Remote Connection and click Add a Enter a name you would like to give
111. 8 99 123 192 168 29 11 4 Log into the development host on the intranet 5 Start Workbench and create a kgdboe connection with these parameters TRANSPORT TCP CPU default IP 147 11 200 11 Port 3333 This has Workbench connect to the TCP port 3333 on 147 11 200 11 and treat it like a normal KGDB connection NOTE You can have any number of agent proxy connections running on the bridging host one for each target within the subnet Just assign a different TCP port for example 3334 3335 3336 and so forth 90 4 Kernel Debugging Kernel Mode 4 2 Background Steps and Concepts If you run agent proxy without any parameters you will get a list of its commands and abilities as shown here wrlinux host tools bin agent proxy agent proxy version 1 6 Usage agentproxy lt udp virt IP local port gt lt remote host gt lt udp remote port gt For udp wdb agent proxy example for default ports agentproxy udp 0x1001 10 0 0 2 udp 0x4321 agentproxy udp 0x1002 remotehost2 udp 0x4321 For KGDB udp target to udp host with default g agentproxy udp 3331 10 0 0 2 udp 6443 For KGDB udp target to tcp host with default g agentproxy 3332 10 0 0 3 udp 6443 Also you can bind to a local vitual interface IE agentproxy udp 47 1 1 2 0x4321 10 0 0 2 udp 0x4321 agentproxy udp 47 1 1 3 0x4321 10 0 0 3 udp 0x4321 agentproxy udp 47 1 1 3 6443 10 0 0 3 udp 6443 agentproxy 47 1 1 3 44444 10 0 0 3 44444 The KGDB over serial connection does
112. 9 4 9 6 1 0 Nav igating and Editing PTETTTTTILEITT EEE LEE 10 1 10 2 Contents 158 161 Tarode O eN Creating Projetts secsssnenenonninisin Adding Application Code to Projects sssssssssssssesssessseesssesssesssessseesssesssessseesens Tnipording Reroute aceno Adding New Files to Proje Opening and Closing Projects a icimessissesrsossssensanvonesinascedurensaneansrisintansnsionanationcnsen Scoping and Navrigaliontsccccincco nue aeS Moving Copying and Deleting Resources and Nodes ccsscseseseseseeeene 9 6 1 Understanding Resources and Logical Nodes ss sssssssseeseeseeseeses Oe Manipulating FEE sonaia n OR 960 Manipulyting Project NOGGs sinicemsincnnimancmmminnncnunmnnientn 107 t Nodes Moving and cates a enone Proj Deleting Project Nodes ged Manipultmg Targat Noden iersinii Introduction Wind River Workbench Context Navigation ssscsssscssesessesenneseenseen The Symbol Dronter enisconniak kan ANR The Outline View The File Navigator Type Hierarchy View Include Browser wcisiscssesssccsssessessosossvevevyvesnnvnossncencevsvansssatsssovnovcsesssausevescevvs 166 166 167 167 168 169 169 was 170 171 pe 172 172 173 xi Wind River Workbench User s Guide 3 0 Linux Version 10 9 The Editor sisscsccssnsisnssccsrcrsscancrarsnanacassaenensneioamenietnnara diac donmoaiaianndndnmaaaiaes 173 Lode Templat
113. CRO1 or DMACRO1 1 corresponds to define MACRO1 and define MACRO1 1 One level of quotes is removed according to compiler command line options In order to specify character values for symbols use single quotes surrounded by double quotes for instance DMACRO2 c For string values use double quotes surrounded by single quotes for instance D MACRO3 Text or DMACRO3 Text The compiler inspection field is disabled for managed projects For user defined projects it is filled automatically with the compiler name or path used for building the project build output analysis must be enabled The compiler is used to detect built in include paths and symbols If the field is empty no compiler internal 185 Wind River Workbench User s Guide 3 0 Linux Version include paths and symbols are passed to the indexer Change the compiler name only if necessary NOTE Miscellaneous settings are lost when the project is removed from the workspace Specifying External APIs External APIs Tab Check or un check Enable project type specific external API An external API is an index holding a pre parsed platform API for a project type Most managed project types come with an external API package The external APIs are used for code completion and parameter hinting hover info in the source editor In addition they can be used to find out where specific platform API functions are declared For example when you us
114. Connect is not grayed out click Connect 3 If Connect is grayed out click Run 4 Click the arrow to the left of the connection to display entries for the target architecture and processes Workbench is connected to the agent on the target and your build results are redirected to the target You are now ready to use Workbench to run and debug applications on the target For more detailed information on launch configurations see 17 2 Creating a Launch Configuration p 266 71 Wind River Workbench User s Guide 3 0 Linux Version 3 9 Debugging an Application on the Target This section briefly explains how to Recognize the parts of the Workbench debugging environment Runa program on a target until it reaches the first breakpoint Use the device debug perspective Step through code and examine memory Set and modify breakpoints 3 9 1 The Workbench Debugging Environment Figure 3 2 illustrates how Wind River extends the Eclipse framework and adds plug ins to form the debugger framework The debugger connects to the target agent on the target through the target server on the Workbench host Figure 3 2 Workbench Host and Target Relationship Eclipse Framework Wind River Extensions to Eclipse Framework Project Source Edi Profiling itor Debugger System Browsing ii Tools H
115. Debug view gt oe MY kl ee Bll penguin out 3454 Task Mode ta 5 penguin out 3454 Stopped Step Er main b_main cpp 30 _libc_start_main0 0x46b69e04 i 2 Step or proceed to a breakpoint such as shown in Figure 18 3 as a mix of assembly and C source code In this case the code has been single stepped to the call instruction Note that the previous steps are shown in lessening degrees of shading this helps you see where you ve been when you step into and out of routines 298 18 Debugging Projects 18 3 Stepping Through Assembly Code Figure 18 3 Single Stepping Though Assembly Code b_main cpp penguin out newConnection amp ma penguin out 3454 O80486ff jne 0x804872C kaz i oe f a 7 gt om ot 2 2 Re 30 for BALL p BALL list p p Y Qpenguin out newConnection Process on T 08048701 mov eax BALL list vi 7 08048706 mov dword ptr ebp OxC eax izi a penguin out 53404 Taski Mod 08048709 cmp dword ptr ebp 0xC 0 Y ipenguin out 3454 Stopped Step Er 0804870d je Ox80486F8 main0 b_main cpp 31 31 p gt Move 0804870 mov eax dword ptr ebp OxC Ae iba stae main 0e6hA0 08048712 mov edx dword ptr eax 08048714 add edx 4 08048717 mov eax dword ptr ebp OxC Breakpoints amp E 0804871a mov dword ptr esp eax 5 r a s 0804871d mov eax dword ptr
116. G No builtin or dynamically loaded modules were found Pango will not work correctly This probably means there was an error in the creation of etc pango pango modules You may be able to recreate this file by running pango querymodules Changing the file s permissions to 644 will cause Workbench to launch properly A 3 General Problems If you are experiencing a problem with Workbench that is not covered in this chapter please see the Wind River Workbench Release Notes for your platform A 3 1 Help System Does Not Display on Linux Workbench comes pre configured to use Mozilla on Linux and it expects it to be in your path If Mozilla is not installed or is not in your path you must install and set the correct path to the browser or Workbench will not display help or other documentation 339 Wind River Workbench User s Guide 3 0 Linux Version To manually set the browser path in Workbench 1 Select Window gt Preferences gt Help 2 Click Custom Browser user defined program then in the Custom Browser command field type or browse to your browser launch program click OK Sample browser launch commands are usr bin firefox 1 kfmclient openURL 1 and opt mozilla mozilla 1 Enter the command line as appropriate for your browser A 3 2 Help System Does Not Display on Windows The help system can sometimes fail to display help or other documentation due to a problem in McAfee VirusScan 8 0 0i and p
117. Guide 3 0 Linux Version 1 2 Starting Workbench You can run Workbench on a Linux or Windows host On a Windows host you have fewer options related to the target 1 2 1 Starting Workbench on a Linux Host You can find the shell command to start Workbench in installDir To start Workbench 1 Make sure your path environment variable is set to include the path to your compiler Typically which gcc should yield usr bin gcc From your Workbench installDir issue the following command startWorkbench sh This is the basic startup command You can supply arguments as described in Running Eclipse in Eclipse Workbench User Guide Tasks in the online help For example these arguments give more heap space startWorkbench sh vmargs Xmx512m The resulting Welcome screen lets you click on options to see an overview find tutorials see what is new and to run Workbench To come back to this screen select Help gt Welcome from the Workbench window Click Workbench Workbench displays the Application Development perspective Figure 1 1 shows the default arrangement of the views Workbench resumes the same perspective when you open it again or you can select the default settings by choosing Window gt Reset Perspective 1 2 2 Starting Workbench on a Windows Host To start Workbench on a Windows host 1 From the Start menu select All Programs gt Wind River gt Workbench 3 x gt Wind River Workbench 3 x 2
118. Hello World displays in the Console view You may have to click the Console tab in the lower middle window If you have added any variables to helloworld c and they have been assigned values the lower right Variables tab displays their current value s 10 Continue stepping through the program or press F8 or click the Resume button to complete it When the program has completed the Debug view displays its exit status lt terminated exit value 0 gt hello_world_Nat PID To remove old information from the Debug view click the Debug view s toolbar icon for Remove All Terminated Launches NOTE You may also debug self hosted applications from another Workbench on another host in addition to using the local Workbench For example this lets you use a 64 bit host that you share with other 32 bit hosts so you can develop 64 32 bit applications when 64 bit hosts are rare To debug self hosted applications from another host start the usermode agent on the self hosted host as if it were a target then connect to it from another host See 3 5 Running Usermode Agent on Non Emulated Targets p 65 2 2 3 Debugging Self Hosted Applications with the CDT GDB Debugger You may use the GDB debugger built into Eclipse to debug native mode self hosted applications such as Hello World To debug hello_world using the GDB debugger 1 Right click the hello_world_Native project folder 2 Select Debug As gt Local C C Application
119. If a debugger has at least one debug session active the active debugger is chosen If there are mixed debug sessions the 257 Wind River Workbench User s Guide 3 0 Linux Version breakpoints are seen by the Wind River debugger In particular the Wind River debugger is assumed or chosen If no project is associated with the open file because CDT does not support project less debugging Ifthere is no active debugger and the target seems to be a device Otherwise if the project is a CDT project a CDT breakpoint will be created Ifa Wind River perspective is open such as Application Development Device Debug On Chip Debug or Hardware Debug otherwise the CDT debugger is chosen 16 2 Types of Breakpoints Figure 16 1 shows the Breakpoints view with various types of breakpoints set Figure 16 1 Breakpoints View e Breakpoints X EIEEE y gridInit Planted X 88 pCurrNode Errors a to File for Breakpoint Iballimain c 55 56 Planted M ballimain c 56 Temporary Restricted Scope Jballimain c 61 Planted Continue ed ballmain c 66 Disabled M ballimain c 66 Planted System Skip Count M jcobble cobble c 101 Temporary Restricted 5 See the sections below for when and how to use each type of breakpoint 258 16 Managing Breakpoints 16 2 Types of Breakpoints 16 2 1 Line Breakpoints Set a line breakpoint to stop your program at a particular line of source
120. KGDB Connection Fails p 98 4 4 2 Option 2 Making a Telnet Connection A port selector device can aggregate multiple serial port connections into telnet connections that can be made available across the network The IP address for this telnet virtual connection would be the one for this port selector device and the port number would be the one for the port of that target For example if your multiplexer digiswitch_1 was at 192 168 29 2 and the telnet serial port for the target was 2011 then the IP address would be 192 168 29 2 and the port would be 2011 To make a KGDB telnet connection 1 Start Workbench on your host 2 Create a new target connection 3 Select the connection type Linux KGDB and click Next 4 Select the connection option Linux KGDB via Terminal Server and click Next a Select TCP as the transport 6 Use the Default from Target CPU default NOTE Select the Arch only if necessary for Pentium targets use Pentium4 instead of ia32 7 Enter the target s IP address 97 Wind River Workbench User s Guide 3 0 Linux Version 8 9 The IP address must match device providing the Telnet connection Enter the Telnet port Click Next Proceed to 4 5 Attaching and Debugging the Kernel from Workbench p 99 If the connection failed go to 4 4 4 When a KGDB Connection Fails p 98 4 4 3 Option 3 Making a Serial Cable Connection To make a serial cable connection 1 2 3 4 5
121. Launches successfully completed will the first launch take place followed by the second launch and so on This provides for situations in which you do not want to continue with a complete launch Control sequence if any of the sub launches cannot take place because for example a target is not available Launch Controls as Sub Launches You can use an existing Launch Control as a sub launch but do not attempt to create recursive launch controls in this way as they will not run If the parent Launch Control s Run Pre Launch command for all launches first is selected and the pre initialize check box is set for the child Launch Control the child will pre initialize all of its sub launches before operation continues on to the next sub launch of the parent Launch Control Otherwise the child Launch Control will have its sub launches initialize at the time that it is launched Understanding the Command Environment The environment variables are collected from multiple locations and then provided on the Properties page as a convenience Typically you will only read variable values but you may want to change them in your pre launch command Your changes affect the launch you are working with only other launches using the same configuration get the default values for the environment variables Environment variables are gathered from four different sources First variables may be defined on the Launch Control s Environment tab These variab
122. Register 5 r 0x00000000 General Purpose Register 6 r7 0x00000000 General Purpose Register 7 r8 0x00000000 General Purpose Register 8 r9 0x00000000 General Purpose Register 9 r10 0x00000000 General Purpose Register 10 rii 0x00000000 General Purpose Register 11 ri2 0x00000000 General Purpose Register 12 r13 0x00000000 General Purpose Register 13 ri4 0x00000000 General Purpose Register 14 x vig Ay NNN Conersl Di wnaca Danictor 15 New CDT Registers View G0 Variables Mi Registers 3 amp Expressions J Memory E et E IER ev Oo Name fa UPMC AMi TIMERS RA CLOCKS 4 ito scer Ox System Clock Control Register CLPD CPM low power with core 0d CPM Low Power DFBRG Divide by 4 0x0 Division Factor BRGCLK 0x00000000 System Clock Mode Register 0x00000000 Reset Status Register 0x00000000 Reset Mode Register M sic Sa IOPORTS Aii CPMTIMERS 0x00000004 ar 000000000004 0b00000000000000000000000000000100 22 1 Overview 1 7 What s New in Eclipse Related Changes For more information about the Registers view see Wind River Workbench for On Chip Debugging User Tutorials and the C C Development User Guide available from the Workbench help system The Eclipse Expressions View Replaces the Watch View The functionality of the two views is basically the same and drag and drop to this view is supported Casting pointers is supported though you cannot set radix for a single element Th
123. Revert all undoes all changes stored in the changelist only if a changelist is available Reload reloads the changelist from the file system Save saves the changes to the changelist xml file Import imports a changelist file and merges it with the current changes Export exports the current changes to a specific location and file Filter Resources filters resources based on whether they have been added or removed or have had a change in status depending on whether the resources are files folders links and so on Packages filters based on the list of rpm archives and allows including and excluding packages from the view View switches between the flat and the package based view 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems Expand opens all levels recursivly below the selected resource Collapse closes all levels recursively below the selected resource Examining Meta Properties of the Files in the File System To examine file properties 1 2 3 4 Create a platform project Double click the project s User Space Configuration node Click the Filesystem tab in the lower left and observe the file system tree To examine the meta properties of files Open the bin directory and examine the first file for example arch b Observe the following The mode string rwxr xr x The file s size 4230 The file s type for example ELF 64 bit LSB executabl
124. Send Signals to Processes In POSIX systems a signal is an asynchronous notification sent to a process that an event has occurred Sending a signal to a process interrupts its normal execution The Debug view is aware of signals sent to processes and displays information about them If a process is suspended because of a signal the view displays the signal name and description For example if a process is suspended because it receives a SIGHUP signal the Debug view shows the information Stopped Signal Received SIGHUP Hangup Resuming Suspended Processes You can resume a suspended process with or without a signal To resume a process without a signal 1 Right click in the Debug view 2 Select Resume Without Signal The selected process resumes discarding any pending signal 296 18 Debugging Projects 18 2 Using the Debug View To resume a process with a signal 1 Right click in the Debug view 2 Select Resume With Signal This opens a dialog from which you can select a signal and click OK The selected process resumes and immediately receives the selected signal Editing a Process s Signal Configuration Each signal can be configured to be passed to the process or to force the process to suspend when it receives the signal To edit the signal configuration of any process 1 Right click the process in the Debug view 2 Select Edit Signal Configuration This opens a dialog allowing you to configure signal attribut
125. Server with the name echo ssh targetServer or IP address of your target server targetCmds targetReboot and replace targetCmds targetReboot with the full path to the command you use to reboot your target The values you enter in the deploy conf in file are used by the deploy sh in script For example in the following line in deploy sh in STARGET SHUTDOWN COMMAND S TARGET ID exit 1 Your shutdown command and target name will be substituted Refer to the comments and commands in the deploy sh in script if you would like any further information on how these values are used Once you have configured the deploy conf in file you can easily deploy each new file system build to your target as follows 1 Select deploy in the Project Explorer 2 Right click in the Project Explorer and select Build Target Your target will be deployed with the new file system 139 Wind River Workbench User s Guide 3 0 Linux Version 140 PART Ill Projects Projects Overview secscssecisneiciiciascasdscieerisncasaaiesnas 143 Creating User Defined Projects 00008 151 Creating Native Application Projects 155 141 Wind River Workbench User s Guide 3 0 Linux Version 142 Projects Overview 6 1 Introduction 143 6 2 Workspace and Project Location 144 6 3 Creating New Projects 145 6 4 Overview of Preconfigured Project Types 146 6 5 Projects and Project Structures 148 6 1 Introduction Workbenc
126. TYPEL a short b b unsigned char 16 December c long color color_type locallnt1 int Incall anal lana 0x00002460 9312 000000022140 0b00000000000000000010010001100000 2 9312 For more information about the Variables view see the C C Development User Guide available from the Workbench help system 24 1 Overview 1 8 Finding Related Documentation 1 7 7 For More Information For details about new Workbench features including non Eclipse enhancements to Workbench see the release notes at http www windriver com support For more information about Eclipse and the projects introduced here see the Eclipse documentation available from the Workbench help system as well as documentation at http www eclipse org documentation 1 8 Finding Related Documentation Other documentation includes Wind River Workbench Online Help a Wind River Workbench for Linux Documentation 1 8 1 Wind River Workbench Online Help Wind River Workbench provides context sensitive help To access the full help set select Help gt Help Contents in Wind River Workbench To see help information for a particular view or dialog box press the help key when in that view or dialog box The help key on Windows hosts is F1 On Linux and Solaris hosts it is the combination CTRL F1 1 8 2 Wind River Workbench for Linux Documentation The following documentation is provided online for the Workbench version that supports Win
127. Up Workbench This setup requires a complete Eclipse and Workbench installation Follow the respective installation instructions for each product 1 From within Workbench select Help gt Register into Eclipse The Register into Eclipse dialog appears 2 Inthe Directory field type in or Browse to your Eclipse 3 2 directory 324 21 Using Workbench in an Eclipse Environment 21 4 Using CDT and Workbench in an Eclipse Environment 3 Inthe Registration Options section select Use Wind River default preferences or leave it cleared to maintain existing Eclipse preferences If you decide to use Wind River default preferences some changes you will notice are that autobuild is disabled and the Workbench Application Development perspective and help home become the defaults 4 If you decided to maintain existing Eclipse preferences you can still use the much faster Wind River index based search engine by leaving Use Wind River search engine selected To use the Eclipse default search engine unselect it 5 If you want to track the installation process leave Log installation process selected click Browse to change the path where the file should be created Uncheck it if you do not want Workbench to create a log file 6 When you are done click Finish Workbench will be available the next time you launch Eclipse No special steps are necessary to launch Eclipse NOTE Any errors discovered during installation appear in the Error Lo
128. Using usermode apent with TIPC sirrien 251 PART VI DEBUGGING 16 Managing Breakpoints sccissscscscassesssssseccnsnecsassssaassnsnanascansasnsiastasnasasanean 257 r Toro mOoi ano 257 16 2 Types Of Brcakpointa scsisnasienaimaannianenaannnnannsimmiapiaiwniianeienat 258 Tez Line Breas itera As 209 loza ER pressio biRakpeinte sciuudincasime ad eenapaienecamnienat 259 16 23 Hatdware Breakpoiits sisimas E 259 Adding Hardware Instruction Breakpoints ssssisiniiiiussiiisis 260 Adding Hardware Data Break poliis srianiassirnienianiwmuioiniwuns 260 Disabling and Removing Hardware Breakpoints sscsesseseeeees 261 Converting Breakpoints to Hardware Breakpoints 0ccceeee 261 Comparing Software and Hardware Breakpoints 0ccceeees 261 163 Manipulating Breakporttts ssscciccssccnssisiviesssasanssinisavasvavivizesscesecsneeesavastossees 262 163 1 Exporting Breakpoinis isiccctdangscencsriniioieriiaaauaniieuausigunne 262 1632 Inport Break points ssassn ieioea 262 1633 Refreshing Break poiits aicciciinnivcnniananmnamsenncmasnnnvena 262 1634 Disabling Break eous cncuucrumcaimronnnnicmimnminenaammenen 263 1635 Removing Preakpoinis aiuc iscsi ccna aeanbnaedanniaues 263 17 Launching Programs seisctscissisasssicsscsssscrsascesasissiaiedssecemasiniesasiiainsiaainase 265 i71 TtPOCMCH ON ssinscsisiccrsvscncsciansavesesseiiaipiani sacs e ES R 265 172 Creating a Launch Configuration sessonsccossomnciconiennaceniaiki s 266 17 2 1 Editing an A
129. WIND RIVER Wind River Workbench USER S GUIDE 3 0 Linux Version Edition 2 Copyright 2008 Wind River Systems Inc All rights reserved No part of this publication may be reproduced or transmitted in any form or by any means without the prior written permission of Wind River Systems Inc Wind River the Wind River logo Tornado and VxWorks are registered trademarks of Wind River Systems Inc Any third party trademarks referenced are the property of their respective owners For further information regarding Wind River trademarks please see http www windriver com company terms trademark html This product may include software licensed to Wind River by third parties Relevant notices if any are provided in your product installation at the following location installDirlproduct_name 3rd_party_licensor_notice pdf Wind River may refer to third party documentation by listing publications or providing links to third party Web sites for informational purposes Wind River accepts no responsibility for the information provided in such third party documentation Corporate Headquarters Wind River Systems Inc 500 Wind River Way Alameda CA 94501 1153 U S A toll free U S 800 545 WIND telephone 510 748 4100 facsimile 510 749 2010 For additional contact information please visit the Wind River URL http www windriver com For information on how to contact Customer Support please visit the following URL
130. Wind River Linux Host Development Target Server Connection Create a host development connection to a Linux 2 6 application Wind River Linux KGDB Connection Create a new kernel mode connection to a Linux 2 6 version kernel see 4 Kernel Debugging Kernel Mode Wind River RTCore Connection Create an RTCore Connection 228 13 Connecting to Targets 13 3 Defining a New Connection Wind River Linux User Mode Target Server Connection Create a usermode connection to the target Wind River QEMU Backend Connection Create a QEMU backend connection Wind River QEMU Connection Create a QEMU connection Wind River QEMU Linux User Mode Target Server Connection Create a QEMU target server connection see 3 Creating and Debugging Platform Projects Properties you set during the creation of a new connection using the New Connection wizard can be modified later by right clicking the connection in the Remote Systems view and then selecting Properties from the context menu Note that if you change properties later you will generally have to disconnect and reconnect in order for changes to take effect To disconnect right click the connection and select Disconnect To re connect right click the connection and select Connect Depending on the type of connection you are making Workbench presents different options and you enter different values For example if you select Wind River Linux Host Development
131. You should see how the kernel root directory target architecture and cross compile prefix are set from the parent platform project You can add additional build options by appending them to the Build command entry make 4 6 2 Debugging a Running User Supplied Kernel Module To debug a user supplied kernel module that is running 1 102 In the terminal view or console on the target get the new file to the target and use the insmod command to install the module kgdb _target_ sftp your_host kgdb _target_ ed myhome workspace moduledebug 2 6 kgdb _target_ get moduleDebugExample ko kgdb _target_ quit kgdb _target_ insmod moduleDebugExample ko 4 Kernel Debugging Kernel Mode 4 6 Debugging User Supplied Kernel Modules To make sure that you can see periodic output from this user module a Enter the following command kgdb _target_ klogd c 8 This command re directs the kernel print statements to the console You will see a message display every second or so You may want to open an ssh or second Telnet session to remove this module when you are done If the klogd is already running and there is no output you can find the PID kill the current instance and restart the demon kgdb _target_ cat var run klogd pid 1084 kgdb _target_ kill 1084 kgdb _target_ klogd c 8 If you still do not see output do the following kgdb _target_ cat proc kmsg Two messages should be internally printed a globa
132. _kgdb kgdb8250 1 9600 Do not use a port that has a console attached to it You may make a connection but it will not otherwise work because the console will attempt to interpret the KGDB data as typed commands Also for 9600 baud connections you may want to reduce the KGDB watch options to achieve reasonable performance 4 4 Connecting with KGDB from Workbench This section guides you in creating the Target Connection to the target for KGDB from Workbench This requires that the KGDB agent is already running on the target as described in 4 3 Preparing the Target for KGDB p 93 4 4 1 Option 1 Making an Ethernet Connection 1 Start Workbench on your host 2 Create a new target connection 95 Wind River Workbench User s Guide 3 0 Linux Version 10 11 12 13 14 96 Select the connection type Linux KGDB and click Next Select the connection option Linux KGDB via Ethernet and click Next Select UDP as the transport NOTE If you are using the agent proxy make this a TCP connection as described in 4 2 2 Using agent proxy to Cross Subnet Boundaries for kgdboe p 89 Use the Default from Target CPU default NOTE Select the Arch only if necessary for Pentium targets use Pentium4 instead of ia32 Use the new architecture families when explicitly selecting the target CPU type Enter the target s IP address The IP address must match the setting from 4 3 1 Option 1 Using a UDP Connection
133. a KGDB connection requires that you select from the following RS232 for a direct serial port connection connection with a null modem cable You will then specify your serial line settings in the following dialog TCP for connection to a terminal server with a direct serial connection UDP for an Ethernet connection on the same subnet PIPE is currently unsupported Back end for user mode connections may be set to wdbrpc or wdbproxy wdbrpc supports any kind of IP connection for example Ethernet A CAUTION The target server must be configured with the same communication back end as the one built for the kernel image and used by the target agent CPU Select default from target to have Workbench identify the target CPU for you or select the target CPU from the drop down menu 231 Wind River Workbench User s Guide 3 0 Linux Version Target Name IP address The Name IP Address field specifies the network name or the IP address of the target hardware for networked targets Target File System and Kernel Target File System and Kernel properties relate to the location of the target s root file system and the name and location of the target kernel You specify the path to the kernel for KGDB connections Root File System Enter the full path of the target s root file system as it is on the host This file system is typically NFS exported from the host Kernel Image This is the full path name including the k
134. a applets and Java applications The Remote Java Application launch configuration type is for connecting to an already running Java application on a remote target It does not launch the application on the target You must start the application through whatever means are available and apply the necessary options for remote debugging Also the I O capabilities of the Console view are not available For details on these launch configuration types refer to http help eclipse org Wind River has added the Remote Java Launch and Connect launch configuration type which is documented here This type of launch uses the usermode agent running on the remote target to start the application and then connect the debugger to the application Remote Java Launch and Connect makes it easy to start debugging remote Java applications with a single click and it also makes application I O available in the Console view This type of launch is required to debug combined Java and JNI code as described in 18 5 Java JNI Cooperative Debugging p 302 Create a Java Project Create new Java projects in Workbench by selecting New gt Project gt Java Project and import existing java files or use the Editor to create new ones Build the 272 17 Launching Programs 17 3 Remote Java Launches project by right clicking the project and selecting Build Project A successful build generates class files and reports no errors The following discussion assumes you are able to
135. a directory for each build target and inside those are directories named Debug or NonDebug depending on the debug mode you chose for the build Workbench generates the output files according to the structure you defined in the build target and deposits them in the debug mode directory In general the build output is structured like this Project directory Project dir build specific redirection dir Project dir build specific redirection dir target dir Project dir build specific redirection dir target dir debug mode dir Project dir build specific redirection dir target dir debug mode dir binary output file of the build target All objects belonging to the build target are stored within an additional Objects subfolder Project dir build specific redirection dir target dir debug mode dir Objects structure of object files 194 11 Building Projects 11 3 Configuring User Defined Builds Example Build Target and Build Output Structure To understand how the build target structure influences the build output below is an example of a project source tree proj1 projl a c projl b c proji folderi c c proji folderi d c Target1 contains these two items a c folder1 c Target2 contains these two items bie d c Configuring the project to use speci as the active build spec naming the redirection directory spec1 and turning debug mode on produces the output structure seen below proj1 spec1 Target1 Debug Target1 out
136. aanicsninnanasisien Customizing Builds with Layers and Templates csssssessesssssssesesssesseess B10 Adding Templates to a Projet prstence 3102 Adding Layers toa Project cast sasesesncrinrcinroiniruciivinpeieeriuarsioiasnanineraiverinors Working with External Locations sssrssssreeseresesnsnssnonsesenenssveneveensnsavensvesvensriense 3 11 1 Creating User Defined Projects at External Locations ses 3 11 2 Building usermode agent at External Locations 1 ssecsseeseeeseens Kernel Debugging Kernel Mode N EET A NT 4 1 4 2 Tittolu sscan NOE Background Steps and Concepts sscscisssiiensriccesinucsienesennnennenenstermmnnanivies 4 2 1 Setting Up for kgdboe Between a Target and a Development Host 4 2 2 Using agent proxy to Cross Subnet Boundaries for kgdboe 4 2 3 Mounting the Target s File System via NFS scsssssesssessseesseeesneess 4 24 Kernels Enabling KGDB versus Debug Builds 1 4 2 5 KGDB and Safe Areas when Debugging the Kernel ssesseeeoe Preparing the Target for KGDB as Bi 43 1 Option 1 Using a UDP Connection on a Non PC g 4 3 2 Option 2 Using a UDP Connection on a PCD odut Statically Configuring KGDB OE for PCD Dynamically Configuring KGDB OE for PCD oib small small 433 Option 3 Using a Serial Telnet Connection sisone vii 74 76 78 80 81 81 83 84 84 85 87 88 Wind River Workbench User s Guide 3 0 L
137. ady in use tipcPortInstance The TIPC port instance to use in connecting to the WDB target agent The default port instance for the connection is 71 You should accept the default port instance unless it is already in use wdbProxylpAddress name The IP address or DNS name of the target with WDB Agent Proxy Note that if you change the default TIPC port configuration you must also change the default TIPC port for the usermode agent as described in 15 5 Using usermode agent with TIPC p 251 250 15 Connecting with TIPC 15 5 Using usermode agent with TIPC Alternatively you can use the Workbench GUI to configure the host Select wdbproxy as the backend when you create a new connection in the Remote Systems view and then fill in the fields with the values you would supply as command line arguments The command line that is created at the bottom of the GUI should be similar to the example shown in this section 15 5 Using usermode agent with TIPC This section explains the several possible options available when launching the usermode agent The listening port is the port used by the usermode agent to communicate with the target server on the host machine If you change the listening port on the usermode agent side then you have to specify the same port number to the target server Port option The port option is p or port Oxpppp UDP xxxx yyyy TIPC This option allows you to select an alternate listening port for the usermo
138. age interdependencies in two windows The Requires window lists the packages that are required by the package you have selected The Required By window lists the packages that require the package you have selected The Options tab lets you turn debugging on or off for particular packages The Targets tab presents 10 buttons that let you choose build targets for the package build rebuild prepatch postpatch patch compile install custom clean and distclean The Log tab primarily lists the additional RPMs that will be generated by the installed packages 123 Wind River Workbench User s Guide 3 0 Linux Version Working with the Controls for Packages The Packages window provides buttons and context menu entries to help you work with one or more packages Use the package buttons as follows from left to right Remove takes packages out of the pkglist file and puts them into the Installable Packages list Check confirms the integrity of the package list by testing all package dependencies as registered in the respective and collective rpm file set The integrity cannot be confirmed entirely because of potential conflicts with the original dependency content from upstream and in the respective customer package data Add moves packages from the Installable Packages list into the pkglist Import adds packages that are not in the Installable Packages window Use these additional context menu entries liste
139. al Locations 84 49 Wind River Workbench User s Guide 3 0 Linux Version 3 1 Introduction This chapter uses tutorial examples to describe how to create a new Wind River Linux platform project and how to deploy and debug it on a target It explains how to configure and test target connections and how to create projects at external locations With the exception noted below you cannot debug an application or a kernel until you have configured a platform and have booted the platform with the kernel and file system that you have configured Then you can start debugging an application or the kernel itself NOTE The only exception to this is native mode self hosted debugging where you do not have to configure a target platform because the development host is the target platform You can only do this on a common PC running Linux This introductory section contains the following subsections which contain cross references to other parts of this chapter 3 1 1 Checklist for Creating a Platform Project to Debug p 51 3 1 2 Exploring Targets and Making Easier Connections p 53 3 1 3 Debugging Applications p 53 3 1 4 Creating External Projects and Using Layers and Templates p 54 50 3 Creating and Debugging Platform Projects 3 1 Introduction 3 1 1 Checklist for Creating a Platform Project to Debug This chapter covers many topics that include a large range of complex features and ideas You can always come bac
140. al parts of the path to better define the file you want to exclude for example type lib standard_test c to exclude that specific file 3 Click Add Folder to define a pattern to exclude folders within specific folders For example type lib _test c to exclude any file located in a folder named lib and named filename_test c 193 Wind River Workbench User s Guide 3 0 Linux Version Leveling Attributes The leveling chain for managed build projects is shown below Project gt Target gt Folder gt File Project gt Target gt Folder gt Subfolder gt File Project gt Target gt Virtual folder gt File Project gt Target gt Virtual folder gt Folder gt Project gt Target gt File The folder level here is related to folders underneath a build target as described in Adding Build Targets to Managed Builds p 191 You can now configure the build target with specific settings for all build tools on a build target level for example you can set compiler options for the source files related to that build target Understanding Managed Build Output Workbench does not create build redirection directories for each folder as the objects might be built differently when building them for specific targets Instead Workbench creates a build specific redirection directory which you can configure on the Build Properties gt Build Paths tab underneath the project root directory In this redirection directory there is
141. and vmargs DDFE Debug true What is Logged Same as DFW GDB MI Log p 357 except with Workbench time stamps What it Can Help Troubleshoot Debugger and Remote Systems view related bugs 358 A Troubleshooting A 8 Error Logs Generated by Workbench Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 8 6 Debugger Views Internal Errors Log How to Enable Log You must enable this log before you start Workbench Do this by adding these parameters to the Workbench executable command vmargs DDFE Debug true What is Logged Exceptions caught by the Debugger views messaging framework What it Can Help Troubleshoot Debugger views bugs Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 8 7 Debugger Views Broadcast Message Debug Tracing Log How to Enable Log You must enable this log before you start Workbench Do this by adding these parameters to the Workbench executable command vmargs DDFE Debug true What is Logged Debugger views internal broadcast messages 359 Wind River Workbench User s Guide 3 0 Linux Version What it Can Help Troubleshoot Debugger views bugs Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information
142. and line application s output and input is redirected to the standard Eclipse console unless the application is started within an external process that creates a new window such as xterm The default for remote execution is a remote command like xterm e Application therefore a local X Server like Exceed or Cygwin X must be set up and running For more information about creating launch configurations see 17 Launching Programs 12 7 6 Rlogin Connection Description The rlogin connection used in the Workbench remote build makes use of the standard rlogin protocol and ports It establishes a connection on port 513 on the remote host and the local port used must be in the range of 512 to 1023 per rlogin protocol convention On Windows the rlogin connection is implemented directly from within Workbench so you do not need an existing rlogin client The UNIX implementation is different because for security reasons the local port range 512 to 1023 is restricted to root access which cannot be granted from within Workbench Therefore an external rlogin process is spawned using the command line rlogin 1 username hostname rlogin on UNIX platforms makes use of setUID root to ensure that the needed root privileges are available The standard rlogin protocol doesn t support access to stderr of the remote connection to all output is treated as stdout Coloring in the Build Console of Workbench for stderr is therefore not available
143. ant add to Makefile wr For example double click Makefile wr and add the following at the bottom of the file in the Editor view uclibc config xterm e make C DIST_DIR uclibc menuconfig An xterm is used because this build rule menuconfig requires a shell that can support xterm commands which is beyond the capabilities of the Build Log view within Workbench Note that at the top of Makefile wr are the definitions DIST_DIR and TARGET_DIR These provide the redirection to the Wind River Linux Platform project s content directory 1 Right click a project or folder and select New gt Build Target 2 Inthe dialog box that appears enter the rule s you want to create a target for If you want to execute multiple rules separate each one with a space For this example add the build target uclibc config 3 Set the Build tool to User defined 4 Click Finish The new build target node appears under the project or folder you selected The node icon has a superimposed M to identify it as a user defined rule To execute the rule s right click the new target node and select Build Target 211 Wind River Workbench User s Guide 3 0 Linux Version 12 6 4 User Build Arguments The User Build Arguments drop down list appears in the Build Console At first the list contains just an empty field You can enter one or more arguments such as a rule or rules or macro re definitions that change the execution of any exis
144. are not part of the current build target or all build targets in the project are empty Add the files to the build target This changes the build so you need to update the index afterwards Activate the Index All files option on the C C General gt Indexer project property page so that all files of the project are parsed A 4 2 Indexing Problems with User defined Projects The following problems might show up specifically in user defined projects Source Files Not Yet Built If the source files have not yet been built Build all source files of your project and then update the index Disable build output analysis on the Discovery tab page of the C C General gt Paths and Symbols project property page then click Clear This disables build driven indexer setup and causes all files of the project to be parsed except standalone header files You need to update the index afterwards Activate the Index All files option on the C C General gt Indexer project property page This disables build driven indexer setup and causes all files of the project to be parsed 341 Wind River Workbench User s Guide 3 0 Linux Version Unsuccessful Built Output Analysis If build output analysis has not been successful for example because of unsupported make rules Make sure that the no print directory make option is not set Disable build output analysis on the Discovery tab page of the C C General gt Paths and Sym
145. arget paths for processes that you want to launch by browsing to them with a host file system browser By default the debug server attempts to load all of a module s symbols each time a module is loaded In the rare cases where you want to download a module or start a process without loading the symbol file unselect Load module symbols to debug server automatically if possible 13 5 3 Specifying an Object File If you are loading object code on the target or associating symbols with already loaded modules you can specify the object file that you want the debugger to use 1 Right click a container in the Remote Systems view then select Load Add Symbols to Debug Server A dialog appears with your connection and core already filled in 2 To adda new object file to the Symbol Files and Order list click Add Navigate to the file then click Open 3 Inthe Symbol Load Options section select Specify base start address or Specify start address for each section 4 When you are finished click OK For more information about the fields in this dialog click in the Remote Systems view then press the help key for your host 234 13 Connecting to Targets 13 5 Connection Settings Pathname Prefix Mappings This maps target path prefixes to host paths Always use full paths not relative paths For example mapping to opt eldk ppc_82xx tells the debugger that files accessible under on the target can be found under opt eldk ppc_8
146. arget you use during development and the performance of the target after deployment of the finished product by keeping development tools on the host With Workbench your application does not need to be fully linked Partially completed modules can be downloaded for incremental testing Modules do not need to be linked with the run time system or even with each other The host resident shell and debugger can be used interactively to invoke and test either individual application routines or complete tasks Workbench loads the relocatable object modules directly and maintains a complete host resident symbol table for the target This symbol table is incremental the target server incorporates symbols as it downloads each object module You can examine variables call routines spawn tasks disassemble code in memory set breakpoints trace subroutine calls and so on all using the original symbol names Workbench shortens the cycle between developing an idea and implementing it by allowing you to quickly download your incremental run time code and dynamically link it with the operating system Your application is available for symbolic interaction and testing with minimal delay The Workbench debugger allows you to view and debug applications in the original source code Setting breakpoints single stepping examining structures and so on are all done at the source level using a convenient graphical interface Wind River Workbench User s
147. argets i in User Defined Projects 0 0 210 12 6 2 Custom Build Targets in Workbench Managed Projects 12 6 3 Custom Build Targets in Wind River Linux Platform Projects laoa MBE Duld Arrume esnie a ANNT 201 ame ADA 203 204 204 207 210 210 211 212 Developing on Remote Hosts osassssssonnonssniinsnsssnanminsrnn SL 1371 General Requirements ssirissnaditiiinii iia 1272 Remote Build Scenarios saeccnancrieeereian enna Local Windows Remote UNIX sc cusaccariescro davsunmrnctovamaaianasaainn Local UNIX Remote UNIX aoai ennaii E NAANA NRA Local UNIX Remote WINdOwWS u cccccccscccsscscssssssscsesesssescsssesssssesssesseseeses xiii 214 214 214 214 Wind River Workbench User s Guide 3 0 Linux Version 12 7 3 Setting Up a Remote Environment cscs cssivcacasesnsainsissadaracnincrsscieaasaanananons 214 1274 Building Projects Remotely ssracnnsenanonunn e 215 12 75 Running Applications Remotely sionspisisndyadn 216 1276 Rogm Connection Description siseiiiniiaeiiaiao iiaeaa 217 12 7 7 SSH Connection Description ensnare 217 12 7 8 Example Using Samba on Remote Linux Host ssscnisssrsinoruas 218 Configure the Remote Linux Host esssrurinnis 218 Configure the Windows Host saisissicicivicaninisiearviniiasenciarnitioeeninsiiernendenes 219 Configure Work bendi snrrann EE 220 Create on Tampile Pree siciaciscninticietiet ia 220 Run the Application on the Remote Host ccncscsdsrnnisenssasensredtertecen
148. asaonaiebeineanagectsies 324 21 4 Using CDT and Workbench in an Eclipse Environment ss ssessessesessesseseeseeses 325 2141 Workilow im ire Project Explorer sacsccrssouiisinsaidavobesneiniudsasiielestunaddnet 326 Application Development Perspective Workbench ccceee 326 Cera Pete ET CDT eeen ese dertieacaexa cin ede at race 326 214 2 Workflow in the Build Console ssecsossenuronsenoumenssnonns 327 Application Development Perspective Workbench s ss sssssssssssesse 327 C C Perspective CDT cccisrcniciaispanniiameiiiaueainrivedan 327 Ceneta ssania E 327 ZL Workilow in he BOO csrcespranenb natnn nonn 327 pening False in an Baar sys 327 SAA Workllow for DeDupging seriinin kiai 328 Workbench and CDT Perspechives sercosrnjononanaoiiai eirias 328 22 Using Workbench with Version Control cccessseeseeeeeeeseeeeeeeees 329 22 1 Wee HDR ocstsccinta casecesanaicisn ie cacisansianannesusteesasaioestacna esneeasnabaiaesasessasaoaaspemincanayenstaes 329 22 2 Using Workbench with ClearCase Views ss eiiseisisissssresesosrisivtssjoneidbusscissosseseress 329 22 2 1 Adding Workbench Project Files to Version Control 0 ee 330 22 2 2 Choosing Not to Add Build Output Files to ClearCase 00 331 PART VIII REFERENCE A ee ci lee en nes 335 AL Ti CHOR jusnsccnnacrencnmmmn ciate enisnemetin ea mmnnme an 335 AZ Starup Problems ccuccuacsccncimnnnccnneei nurs 336 Workspace Metadata Is Corrupted sopiiisiritinniri esetre 336 Wworkb n
149. at color context in the Debug view if no color band is displayed then the view will update as you select different processes in the Debug view For more information see Wind River Workbench User Reference Disassembly View 301 Wind River Workbench User s Guide 3 0 Linux Version 18 5 Java JNI Cooperative Debugging Java JNI Java native interface cooperative debugging allows you to debug the Java side of your Java application with the JDT debugger and the JNI side of your application with a C C native debugger simultaneously You can use Java JNI cooperative debugging when you have a Java project that has Java classes with native methods and have built the associated native libraries with debug information In addition to your Java classes the JRE and the native libraries required to run your application on the target you must have the special helper class and its associated library file on the target as well These are provided by Wind River and are required for Workbench to perform Java JNI cooperative debugging The helper class file and its associated native library are available in the directory installDirfinux2 x usermode agent bin wrjnidebug Copy the contents of this directory the wrjnidebughelper jar file and the libwrjnidebughelper so file to a directory on the target You will need to refer to the location of these files when creating your launch configuration as described in Creating a Launch Configuration f
150. at once but only one can be active at a time By default editors are stacked in the Editor area but you can tile them in order to view source files simultaneously Tabs in the Editor area indicate the names of files that are currently open for editing An asterisk indicates that an editor contains unsaved changes A perspective is the layout of the views and editors in a window A single window can maintain several perspectives but shows only one perspective at a time To open new perspectives and switch between them use the buttons in the shortcut bar along the top right edge of the Workbench window When you start Workbench for the first time two buttons display as shown in Figure 1 2 Perspectives Shortcut Bar Application Development Perspective Open a Perspective _________ Fj tig Applicatio 10 1 Overview 1 4 Understanding Cross Development Concepts Perspectives are a convenience for accomplishing specific tasks For example the Application Development perspective is designed for creating projects browsing files editing source code and building applications For the Device Debug perspective useful when running and debugging a program click Window gt Open Perspective gt Device Debug This perspective contains the Debug and Breakpoints views and a tabbed notebook with view such as Variables and Expressions The symbol gt gt indicates additional tabs that do not fit on the view The tab
151. ated in the previous chapter Depending on your installation you will have different options for selecting a build spec a root file system and a kernel Select Aboard from the board menu NOTE Check the Release Notes and the Online Support site to see which boards are emulated by QEMU Currently these include the Common PC and ARM Versatile AB 926EJS boards among others A file system size from the RootFS menu Possible options are glibc_cgl for carrier grade Linux glibc_std for standard Linux glibc_small for a 3 Creating and Debugging Platform Projects 3 2 Creating a Wind River Linux Platform Project Busybox based file system and uclibc_small for one based on uClibce To follow the tutorial example choose glibc_std A kernel Possible options are cgl ecgl standard small preempt_rt the Open Source soft realtime kernel and rtcore Wind River s guaranteed real time kernel depending on the choice of RootFS The build spec associated with that board kernel and root file system is displayed e New Wind River Linux Platform Project x Configure Options Specify the Linux configure options f 7 General settings Board arm_versatile_926ejs Production build _ owe sta z Scania Kernel standard gt Enable Quilt Build spec arm_versatile_926ejs glibc_std 4 Optional and not needed here If you want to add or modify arguments to the configure command select Advanced gt
152. aunch Configuration p 267 17 8 Attaching to the Kernel You can attach to the kernel in KGDB debugging mode For an example of attaching to core with a KGDB connection refer to 4 5 Attaching and Debugging the Kernel from Workbench p 99 284 17 Launching Programs 17 9 Suggested Workflow 17 9 Suggested Workflow Launch Configurations allow for a very tight Edit Compile Debug cycle when you need to repeatedly change your code build and run it You can use the F11 Debug Last Launched key to build the projects you have specified connect your target unless it is already connected download and run your most important program over and over again The only thing to watch is that you cannot rebuild your program or kernel while it is still being debugged or its debug info is still loaded into the debugger Depending on the size of the modules you run and debug it can be the case that the debug server cannot load all the symbolic information for your modules into memory By default the size limit is set to 60MB this can be changed by selecting Window gt Preferences gt Remote Systems gt Debug Server Settings gt Symbol File Handling Settings If a module is bigger than this limit it will be locked against overwriting as long as the debugger has symbols loaded This means that when you try to rebuild this module you will see a dialog box asking you to unload the module s symbol information from the debugger before you con
153. bc_ cgl DEBUG mthread o powerpc wrs linux gnu e500v2 glibce cgl gcc g fno omit frame pointer mpowerpc mcpu 8548 pipe MD MP c DARCH ppc o fsl_ 8548cds glibc cgl DEBUG mthread o mthread c You should get the exact same build results as you would get executing this in Workbench 5 You can now experiment with the command and its environment to troubleshoot problems Executing Shell Commands in Workbench Just as you can test Workbench commands in a shell you can add shell or script commands to Workbench Reasons to do this include You want to have housekeeping scripts available in Workbench You want to have scripts that execute in the correct and specific environment You want to add temporary debug scripts that are project specific The following example assumes you want a command that displays all environment settings that contain the project s name 1 Right click a platfrom project and select Properties gt Build Properties gt Build targets 2 Inthe Custom build targets section click New 3 Enter the name Display Environment 367 Wind River Workbench User s Guide 3 0 Linux Version 4 Click Variables select Project Name and click OK gi Finish the command so that it looks like this sh c env grep selected project_name Set the Type to Command 6 7 Set Refresh after execution to Nothing 8 Click OK for the Build Target dialog box 9 Click OK for the Properties dialog
154. be Locked x Could not launch the product because the associated workspace is currently in use There are three possible causes for this error 1 Another user has opened the same workspace A workspace can only be used by one user at a time 2 You installed Workbench on a file system that does not support locking Use the following command at a terminal prompt to start Workbench so that it creates your workspace on a file system which does allow locking such as a directory on a local disk startWorkbench sh configuration directory that allows locking For example startWorkbench sh configuration usr local yourName 338 A Troubleshooting A 3 General Problems NOTE For more information on Workbench startup options see Help gt Help Contents gt Wind River Partners Documentation gt Eclipse Wo rkbench User Guide gt Tasks gt Running Eclipse 3 On some window managers e g gnome you can close the window without closing the program itself and deleting all running processes This results in running processes maintaining a lock on special files in the workspace that mark a workspace as open To solve the problem kill all Workbench and Java processes that have open file handles in your workspace directory Pango Error on Linux If the file pango modules is not world readable for some reason Workbench will not start and you may see an error in a terminal window similar to cunknown gt 21465 WARNIN
155. bench There are three basic types of resources Files Equivalent to files as you see them in the file system Folders Equivalent to directories on a file system In Workbench folders are contained in projects or other folders Folders can contain files and other folders Projects Contain folders and files Projects are used for builds version management sharing and resource organization Like folders projects map to directories in the file system When you create a project you specify a location for it in the file system When a project is open the structure of the project can be changed and you will see the contents A discussion of closed projects is provided under 9 4 Opening and Closing Projects p 163 Logical nodes is a collective term for nodes in the Project Explorer that provide structural information or access points for project specific tools Subprojects A project is a resource in the root position A project that references a superproject is however a logical entity it is a reference only not necessarily or even normally a physical subdirectory of the superproject s directory in the file system Build Target Nodes These are purely logical nodes to associate the project s build output with the project Tool Access Nodes These allow access to project specific configuration tools 9 6 2 Manipulating Files Individual files for example source code files can be copied moved or deleted These are p
156. bench Build Console or the Problems view the file containing the error opens in the assigned editor 21 4 3 Workflow in the Editor Opening Files in an Editor The editor that should be used for files cannot be determined It depends on the settings defined in the appropriate plugin xml files and on the order in which the Workbench and CDT plug ins are loaded 327 Wind River Workbench User s Guide 3 0 Linux Version Only one default editor can be associated with each file type and it is the same for both perspectives Files can be opened with the Open With menu allowing you to select the editor When executed that editor is associated with and becomes the default for this specific file NOTE To assign a default editor for all files with a given signature you must define a file association in the preferences by selecting Window gt Preferences then choosing General gt Editors gt File Associations For example to add a default editor for all c files click Add and enter c The list of available editors appears Select one then click Default 21 4 4 Workflow for Debugging Workbench and CDT Perspectives Regardless of any direct file association created using the Open With command the default editor opens when debugging a file For example associating c files with the default Workbench editor opens the Workbench editor in the CDT Debug and the Workbench Device Debug perspectives The reverse is also
157. ble from any other workspace 6 The build is executed on the remote host with the build output listed in the standard Workbench Build Console The X Server IP address listed in the Display field is used whenever any type of X application is started either during builds or runs 7 Toreturn to local development select Local Host from the list of connections then click Connect 12 7 5 Running Applications Remotely This section provides information about running native applications only Running native applications remotely is quite similar to running applications locally a Native Application launch configuration must be created that defines the executable to be run as well as remote execution settings for the launch On the Remote settings tab are Remote Program Enter the command that is used to launch the application This may be useful for command line applications that could then be launched within an xterm for instance Remote Working Directory This setting is optional but if a remote working directory is given it overrides the entry in the Working Directory field of the Arguments tab For remote runs a new connection similar to the active connection will be established to allow control of Eclipse process handling as the new remote process will be shown in the Debug view The Remember password during Workbench sessions feature is very useful here 216 12 Building Use Cases 12 7 Developing on Remote Hosts Comm
158. bols project property page and click Clear This disables build driven indexer setup and causes all files of the project to be parsed except standalone header files You need to update the index afterwards Activate the Index All files option on the C C General gt Indexer project property page This disables build driven indexer setup and causes all files of the project to be parsed Note that this increases the memory consumption of Workbench A 4 3 Other Indexing Problems The problems in this section may appear regardless of whether the project is managed or user defined Files Excluded in the GUI If the files have been excluded via the Sources Filters tab page on the C C General gt Paths and Symbols project property page 1 2 3 Open the Sources Filters tab page on the C C General gt Paths and Symbols project property page Expand any source folder and check the filters below Click Edit filter data to change exclusion filters Note that filtered paths are not parsed and that you need to upate the index after making these changes 342 Outdated Index A Troubleshooting A 4 Fixing Indexer Issues If the index is not up to date Right click the project in the Project Explorer and select Index gt Update with Modified Files in order to parse modified and newly added files Right click the project in the Project Explorer and select Index gt Rebuild in order to clear the index and re pars
159. build target s options by clicking Edit or Rename You can also edit the options except name by clicking in the column itself Continue configuring your project or click OK to close the Build Properties Once you have defined a build target it is available when you right click a project and select Build Options The build targets are inherited by each folder within the project eliminating the need to define the same build targets in each individual folder 154 Creating Native Application Projects 8 1 Introduction 155 8 2 Creating a Native Application Project 156 8 3 Application Code for a Native Application Project 158 8 1 Introduction Use a Native Application project for C C applications developed for your host environment Workbench provides build and source analysis support for native GNU and Microsoft development utilities assembler compiler linker and archiver though you must acquire and install these utilities as they are not distributed with Workbench NOTE Workbench supports the MinGW Cygnus and MS DevStudio compilers Compilers for native development are distributed with Wind River Platforms but not with Workbench You may use the GDB debugger built into Eclipse to debug native mode self hosted applications such as Hello World For more information see 2 2 3 Debugging Self Hosted Applications with the CDT GDB Debugger p 35 155 Wind River Workbench User s Guide 3 0 Linux Version 8 2
160. can the current project s own unlinked object files as well as any output products received from projects further down in the hierarchy see step 4 above 7 When you are ready you can review your settings using the Back button or click Finish The Native Application project is created and appears in the Project Explorer either at the root level or linked into a project tree depending on your selection in step 3 above 8 3 Application Code for a Native Application Project After project creation you have the infrastructure for a Native Application project but often no actual application code If you are writing code from the beginning you can add new files to a project If you already have source code files you will want to import these to the project For more information refer to Importing Resources p 162 and Adding New Files to Projects p 163 158 10 11 12 PART IV Development Working in the Project Explorer 161 Navigating and Editing ccsseeeeeeeeeeeeeeeees 169 Building Projects sesissesssasnssnssisasanasannnnsnoasisaianana 189 Building Use Cases scccessssseeeeeeeeeessenees 201 159 Wind River Workbench User s Guide 3 0 Linux Version 160 Working in the Project Explorer 9 1 9 2 9 3 9 4 9 5 9 6 Introduction 161 Creating Projects 162 Adding Application Code to Projects 162 Opening and Closing Projects 163 Scoping and Navigation 164
161. causes the dummy sub folder under the cpp_demo project to be excluded The dummy2 A c part excludes all files of the dummy2 sub folder starting with A and having a c extension If the filter were dummy3 it would exclude all dummy3 sub folders of the cpp_demo project or of any sub folder of cpp_demo If you need to include a sub folder dummy4 of an excluded folder dummy3 then simply add dummy4 as source folder by using the Add workspace folder button dummy4 will then be treated as exception to the dummy3 exclusion filter Setting Up a Build Driven Index Discovery Tab The Discovery tab page of the Paths and Symbols dialog provides options for controlling the build output analysis for user defined projects The page is only visible for this kind of project Use Discovery to enable build output analysis where you want to set up the project according to your build settings You cannot modify the results Click Clear to reset the discovered include paths symbols and build scope if necessary 184 10 Navigating and Editing 10 5 Configuring the Indexer for Source Analysis When the Enable analysis of build output from console and build output file option is enabled include paths symbols and the build scope the set of built files are gathered during a build The results are used to set up the indexer correctly Although user defined projects already come with a set of include paths found during project creation by analyzing source
162. ch 30 Directory Is Corrupted sorniera 337 Registry Unreachable Fito sajerona 337 Workspace Cannot Be Locked Linux and Solaris 0 0 cee 338 Pango Error on LNU saccinticaianinoiedmincnaeaneninennannioie 339 XX A 3 AA A6 Contents General Proble sasiiiccccssceastennsncaciennnainniainnmaeawunain OOo A3 1 A3 2 A 3 3 Help System Does Not Display on LIMY sccimnincecidannmscccn 299 Help System Does Not Display on Windows s s 340 Resetting Workbench to Its Default Settings cece 340 Fixing Indexer 1ss 68 cisccusecsasnisssousnnrmsusioariaaisnesaumemoneaeneaneiias OL AAA AA 2 AA3 Indexing Problems with Managed Projects c seeeeeene SAL Indexing Problems with User defined Projects ccscceeeene 341 341 Source Files Not Yet Built Unsuccessful Built Output Analysi Oher Indlexitig Problems saaciasuskninimussinanaaaamane Bee Files Excluded in the GUI cccwnsivacavaanreuswsiinndaiocewassians O42 Outdated Index 348 Incorrect Include P 343 Troubles Parsing Source Code ssssecsesecseceeeeeeeneeee 343 Hints about Performance and Breakpoint sssessssssssssssssseesreeerrersssssssssssssseesse 344 Module Optimization Levels and Jumping Program Counters F id Skipped Breakpoints Manual Refresh of the Build Linked Directory in Workbench Disabling Workspace Refresh on Startup Workbench Freezes No one aang to Mouse Clicks Planting
163. ch type 16 ball out MPC8260 Linux 2 6 debug target level process name core name OS name OS version 16 ball out Stopped Breakpoint thread level thread name state reason for state change main main c 59 stack frame level function args file line can also be address Stack arguments and argument values are not displayed in the Debug view by default so as to improve debugging performance To activate stack level arguments in the Debug view select Window gt Preferences gt Run Debug gt Performance then select the Retrieve stack arguments for stack frames in Debug View and Retrieve stack argument values for stack frames in Debug View check boxes Click OK 290 18 Debugging Projects 18 2 Using the Debug View NOTE The stack arguments reflect the current values of the stack argument variables not their initial values immediately after entering the function call How the Selection in the Debug View Affects Activities Choosing a specific level of your debug target controls what you can do with it Selected Level launch debug target thread stack frame Monitoring Multiple Processes Action Allowed Terminate or disconnect from all processes cores for the launch debug target Terminate or disconnect from the debug target Perform run control that applies to the whole process suspend resume all threads Assign color to the debug target and all its threads tasks Terminate
164. ching 1 Position the cursor after one of the bracket matching characters either the opening or closing character A rectangle of very thin lines encloses the matching character If your cursor is after an opening character the rectangle appears after the corresponding closing one If after a closing character it appears after the corresponding opening one 2 Press CTRL SHIFT P The cursor moves to just after the matching character 3 Press CTRL SHIFT P a second time The cursor returns to the original position NOTE Before you proceed with the tutorial undo any changes you might have made to main c by selecting File gt Revert 2 4 6 Using Bookmarks Adding a bookmark to a source file is similar to placing a bookmark in a book it allows you to find an item you are interested in at a later time by looking in the Bookmarks view Open the Bookmarks view by selecting Window gt Show View gt Bookmarks You can bookmark a file or a particular line of code within it 43 Wind River Workbench User s Guide 3 0 Linux Version The following procedures introduce an error in the source code and bookmark it Later procedures explain how to recognize that the build does not complete because of the error how to find the error and how to rebuild the project Introducing an Error for this Tutorial To introduce an error 1 2 3 Find main in the main c file in the editor Move down a few lines to find the ca
165. cified share of heap memory absolute file size and header file cache size 6 Click Apply 176 10 Navigating and Editing 10 5 Configuring the Indexer for Source Analysis Project Specific Properties To set project specific indexer preferences properties 1 Right click a project in the Project Explorer then select Properties gt C C General gt Indexer Select Enable project specific settings Select Index all files if you want to parse all source and header files By default the only files indexed are those added to a managed project s build target or for user defined projects those included by enabling build output analysis Select No Indexer in the drop down if you want no files to be parsed Click Apply 10 5 2 Editing Build Properties Indexing works differently depending on the type of project Managed projects allow full configuration of build settings via the Workbench build properties page Include paths and symbols preprocessor macros defined in the build properties are directly passed to the indexer The build scope the files to be built defines which files the indexer processes by default Other files are not be parsed by default User defined projects do not allow full configuration of build settings via the Workbench GUI Manual editing of makefiles may be required in order to get a fully functional build The indexer can however derive include paths symbols and build scope through
166. ck in the gutter to add a standard breakpoint and then in the breakpoint view right click the breakpoint you ve just added and select Properties In the last pane Hardware of the Properties dialog box select Enable Hardware Breakpoint Adding Hardware Data Breakpoints Set a hardware data breakpoint when The debugger should break when an event such as a read or write of a specific memory address or a situation such as data at one address matching data at another address occurs Threads are interfering with each other or memory is being accessed improperly or whenever the sequence or timing of runtime events is critical hardware breakpoints are faster than software breakpoints To add a hardware data breakpoint go to the breakpoint view then click the down arrow in the top right of this view and select Add Data Breakpoint to display the hardware data breakpoint dialog box You are presented with four tabs Use the General tab to enter the variable you want to monitor in the Address Expression box Use Status and Scope tabs the same way for hardware code breakpoints Use the Hardware tab to bold fields that you can check to make a selection from the drop down list for example to choose the access size Byte Half Word or Word and the access type you want to monitor for this variable 260 16 Managing Breakpoints 16 2 Types of Breakpoints Disabling and Removing Hardware Breakpoints You can disable and remove hardwar
167. ckage button and script to do the first part of the new package preparation a Select a classic or SRPM package for example http download fedora redhat com pub fedora linux releases 7 Fedora source SRPMS dos2unix 3 1 28 fc7 sre rpm b Click Go c Click Close NOTE You have to close this tool before other Workbench actions like builds or Quilt actions can occur Since this is an SRPM you need to update the spec file and create a patch file for it Select the new package and click Patch in the Targets tab b Add the Build directory link and refresh if needed c Right click anywhere in the dos2unix tree select Quilt gt New Patch and call it dos2unix wr integration patch This is just an example d Browse to the file build dos2unix 3 1 28 fc7 dos2unix spec 5 Configuring Wind River Linux Platforms 5 6 Using Quilt to Manage Patches e Right click this file select Add File to Top Patch then click OK to accept the change f Make the following changes to dos2unix spec in the Workbench text editor and save the file Immediately after every build and install section header add the RPM macro oconfigure_target There is one build and one install in this example Optionally add a change indicator such as WR to the Release line Optionally add an entry to changelog g Right click select Quilt gt Refresh top patch and click OK to accept the refresh Observe in build dos2unix 3 1
168. click the debug icon in the main menu bar 3 Confirm that the program has stopped at a breakpoint by looking at the Debug view in the upper right corner of your window 4 When you connect to your target and launch the program the connection displays in the Remote Systems view with connected beside it The type of target and version of Linux that is running is displayed under the connection definition You can expand this node to display any tasks that are running Scroll down and find the stopped ball out process It will have the same process ID shown with the stopped process in the Debug view 5 The Workbench window now displays the Device Debug perspective with the source file open and the line highlighted corresponding to the point at which the program stopped 73 Wind River Workbench User s Guide 3 0 Linux Version NOTE You can connect to the target from the Remote Systems view or the Project Explorer instead of using a launch configuration Connecting this way automatically creates a launch configuration for you which you can access by right clicking in the Debug view Now that you have created a launch configuration you do not have to go through these steps each time you want to test your application the connect run and attach debugger steps are all pre configured You can use a launch configuration in either run or debug mode You can click any of the following The Run button in the toolbar to run the
169. code To set a line breakpoint with an unrestricted scope that will be hit by any process or task running on your target double click in the left gutter next to the line on which you want to set the breakpoint A solid dot appears in the gutter and the Breakpoints view displays the file and the line number of the breakpoint You can also right click in the gutter and select Add Global Line Breakpoint To set a line breakpoint that is restricted to just one task or process right click in the Editor gutter and select Add Breakpoint for selected thread If the selected thread has a color in the Debug view a dot with the same color will appear in the Editor gutter with the number of the thread inscribed inside it 16 2 2 Expression Breakpoints Set an expression breakpoint using any C expression that will evaluate to a memory address This could be a function name a function name plus a constant a global variable a line of assembly code or just a memory address Expression breakpoints appear in the Editor s gutter only when you are connected to a task Breakpoint conditions are evaluated after a breakpoint is triggered in the context of the stopped process Functions in the condition string are evaluated as addresses and are not executed Other restrictions are similar to the C C restrictions for calculating the address of a breakpoint using the Expression Breakpoint dialog box 16 2 3 Hardware Breakpoints Some processors
170. d hence you will not be able to debug your JNI code The Linux run time loader ld so or 1d linux so usually located in lib Without access to symbols of the runtime loader the native debugger will not be able to automatically detect shared libraries such as your JNI libraries as the Java VM loads them This will again prevent you from debugging your JNI code The JNI libraries that are part of your application Without access to symbols from your JNI libraries you will not be able to debug your JNI library even if the native debugger can detect that the library has been loaded Note that if none of the target file system is accessible you may need to copy the necessary object files from the target to a location to which the host has access and then specify that location in your object path mappings Creating a Launch Configuration for Cooperative Debugging Use the following procedure to create a launch configuration for cooperative debugging For details on all options available when creating a launch configuration refer to Wind River Workbench User Interface Reference Manual Launch Configuration Dialog online 1 Select Run gt Debug select Remote Java Launch and Connect and click New to create a new launch configuration In the Main tab Enter the name of your Java project for Project or select it by browsing to it Enter your main class for Main class or select Search to select it from a list Check Sto
171. d rather than the Debug or Non Debug mode fields warnings will always be suppressed rather than only in either Debug or Non Debug mode 12 Building Use Cases 12 2 Adding Compiler Flags Adding a Compiler Flag with GUI Assistance If you are not familiar with the specific command line tool options that you want to use the GUI may be able to help For example 1 Inthe Project Explorer right click an application project and select Properties 2 Click Build Properties and select the Build Tools tab 3 Inthe Build Tools tab Set the Build tool to C compiler Set the Active build spec to for example PENTIUM gnu native c We assumed you are unfamiliar with the GNU compiler options so to open the GNU Compiler Options dialog box click the Tool Flags button d Inthe GNU Compiler Options dialog box click your way down the navigation tree at the left of the dialog box and take a look at the available options e When you get to the Compilation gt Diagnostics node select the check box labelled Suppress all compiler warnings Notice that w now appears in the list of command line options at the right of the dialog box f Click OK 4 Back in the Build Tools node of the Properties dialog box you will see that the w option you selected now appears in the field next to the Tool Flags button The contents of this the Tool Flags field is expanded to the ToolFlags placeholder you see in the Command field above it 203
172. d River Linux Additional documentation is also available online depending on your installation 25 Wind River Workbench User s Guide 3 0 Linux Version Help gt Contents gt Wind River Documentation gt Getting Started Wind River Workbench Tutorial Linux Version The Getting Started Part II section of this document developing user mode applications configuring Wind River Linux platforms kernel mode debugging and using the QEMU target emulator Help gt Contents gt Wind River Documentation gt Guides gt Host Tools Wind River Workbench User s Guide this document This guide describes how to configure your Workbench host and a Wind River Linux target to debug applications and kernel objects on the target It describes how to use Workbench to develop projects manage targets and edit compile and debug code Wind River Workbench Host Shell User s Guide The host shell is a host resident shell that provides a command line interface for debugging targets Wind River Analysis Tools This set of documents describes how to use the analysis tools that are provided with Workbench The tools include a memory use analyzer an execution performance profiler a code coverage analyzer and a graphical application variable monitoring tool Wind River System Viewer User s Guide This guide describes how to use System Viewer which is included with Workbench System Viewer is a logic analyzer for visualizing and troub
173. d a new source to the lookup path you can adjust its position in the search order by clicking Up or Down to change its position in the list The Common Tab The Common tab allows you to specify who can access this configuration and whether it appears in the Workbench toolbar menu 1 If this launch configuration is shared with others on your team click Shared then type or browse to the directory where the shared configuration is located 2 Ifyou want to be able to access this launch configuration from the Debug favorites menu the drop down menu next to the bug button on the Workbench toolbar select Debug in the Display in favorites menu box 3 If you want the process to launch in the background ensure that box is selected 4 Click Apply to save your settings but leave the dialog box open click Close to save your launch configuration for later use or click Debug to launch it now 268 17 Launching Programs 17 2 Creating a Launch Configuration 17 2 2 Creating a Process Launch Configuration Once you click New the Main Projects to Build Debug Options in debug mode Source and Common tabs appear The Name of the build target you selected in the Project Explorer appears at the top of the dialog box in the form name connection_name If you did not select a build target or want to modify the name that appears type a descriptive Name for your new launch configuration 17 2 3 The Main Tab The Main tab displays info
174. d alphabetically as follows Erase removes the respective package s RPM file from the live target Erase is the official rpm command Force Install installs the respective package s RPM file on the live target independent of the architecture or package dependencies NOTE This runs installDir wrlinux 2 0 scripts launch_script sh executing the following command at line 62 launch_execute rpm_force RPM iv ignorearch nodeps force see man rpm to tailor this as needed Install causes the respective package s RPM file to be installed on the live target Open places the actual pkglist file in the editor to provide direct text editing of the actual file Use the Reload command to see any changes Reload rescans the pkglist file and reloads the package lists in this view Replace does an rpm Erase and and an Install on the target for the respective RPM file Revert returns the pkglist file s content to the original content as it was when this view was opened Save adopts any changes 124 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems Force Installing Packages The Force Install context menu entry lets you install an RPM file without regard to any mismatch between the host and target architectures or package dependencies that cannot be fulfilled Because the dependencies as defined by rpm are rigid they may not apply to your platform For example
175. d as the core file size for example target_ ulimit c unlimited Certain conditions for example when a program tries to access restricted memory will then generate core dumps as in target_ segtest out Segmentation fault core dumped You can also turn on core file generation by setting a core file size unlimited or as specified and then cause a core file to be generated by setting a limit on some condition For example target_ ulimit c 0 target_ ulimit c 12000 target_ ulimit c 12000 target_ ulimit m unlimited target_ ulimit m 2000 target_ ulimit m 2000 310 19 Analyzing Core Files 19 3 Attaching Workbench to a Core File The shell is now set to generate a core file of a maximum size of 12000 KB if the memory size for a process exceeds 2000 KB NOTE Your ulimit settings entered at the command line apply to the current shell only If you want to continue to generate core dumps across logins add the ulimit commands to a shell startup file for example to bash_login Transfer the core dump to your host if it is not already on a file system that your target mounts from the host You can now analyze the core file using the Workbench debugging tools 19 3 Attaching Workbench to a Core File Use the Remote Systems view to create a connection to the core file You do not need to be connected to the target if you have access to the target file system because core file analysis takes place on the
176. d choose Shutdown On Linux and UNIX execute wtxregd stop or manually kill the wtxregd process If you want to migrate your existing registry database and all of your existing connection configurations to the new version make a backup of the registry data file installDirl wind wtxregd hostname and copy it to the corresponding new product installation location 13 6 4 Changing the Default Registry El 13 Normally the default registry runs on the local computer You can change this if you want to force a default remote registry see 13 6 2 Remote Registries p 238 To do this on Linux and UNIX modify the WIND_REGISTRY environment variable To do this on Windows under the Windows Registry HKEY_LOCAL_MACHINE node modify the field Software Wind River Systems Wtx N N WIND _REGISTRY 239 Wind River Workbench User s Guide 3 0 Linux Version 240 14 Connecting with USB 14 1 Introduction 241 14 2 Configuring a Target for USB Connection 242 14 3 Configuring a Host for USB Connection 243 14 1 Introduction You can make a USB connection between a Workbench host and a target that supports the USB driver Once you have established the connection you can use it to debug applications just as you would with an Ethernet connection 241 Wind River Workbench User s Guide 3 0 Linux Version 14 2 Configuring a Target for USB Connection The way you configure your target depends on the host platform Target Con
177. d its make rules will be executed on builds It is possible to include multiple makefile files in the project but they are included in alphabetical order So if multiple build steps must be done in a specific order it is suggested that you use one makefile and specify the order of the tools to be called using appropriate make rules For example 1 Execute a lex compiler 2 Execute a yacc compiler depending on lex output 3 Execute a SQL C tool depending on the yacc output Solution using the generate_sources make rule generate sources do lex do_yacc do sql do_lex do_yacc do_sql or generate_sources LEX_ GENERATED SOURCES YACC_GENERATED SOURCES SQL GENERATED SOURCES Add appropriate rules like those shown in the file yacc makefile 199 Wind River Workbench User s Guide 3 0 Linux Version 200 12 Building Use Cases 12 1 Introduction 201 12 2 Adding Compiler Flags 202 12 3 Building Applications for Different Target Architectures 204 12 4 Creating Library Build Targets for Testing and Release 204 12 5 Implementing Architecture Specific Functions 207 12 6 User Defined Build Targets in the Project Explorer 210 12 7 Developing on Remote Hosts 213 12 1 Introduction This chapter suggests some of the ways you can go about completing various build specific tasks in Wind River Workbench 201 Wind River Workbench User s Guide 3 0 Linux Versio
178. d plugins alongside the eclipseextension file 20 Integrating Plug ins 20 3 Incorporating New Plug ins into Workbench Adding Plug in Functionality to Workbench 1 Before starting Workbench make sure that the ClearCase tools directory is in your path usr atria bin for Linux or Solaris C atria ClearCase bin for Windows this may vary Start Workbench then select Help gt Software Updates gt Manage Configuration The Product Configuration dialog appears Select Add an Extension Location in the Wind River Workbench pane Navigate to your eclipseplugins plug in eclipse directory Click OK Workbench will ask if you want to restart To properly incorporate ClearCase functionality click Yes Incorporating the IBM Rational Plug in When Workbench restarts activate the plug in 1 2 3 Select Window gt Customize Perspective In the Customize Perspective dialog switch to the Commands tab Select the ClearCase option in the Available command groups column then click OK A new ClearCase menu and icons appear on the main Workbench toolbar From the ClearCase menu select Connect to Rational ClearCase to activate ClearCase functionality After you have activated the plug in Select Window gt Preferences gt Team gt ClearCase SCM Adapter to configure it See Help gt Help Contents gt Rational ClearCase SCM Adapter for more information about using it For more information about ClearCase funct
179. de agent Two network connection types are supported UDP this is the default connection type If you do not specify a particular type of network connection UDP is used If you do not want to use the default UDP port 0x4321 you can choose and set the one you want using this option The port number can be entered in either decimal or hexadecimal format To set the port number using the hexadecimal format use the 0x x format where x represents the port number in hexadecimal base For example to launch the usermode agent using UDP and port 6677 usermode agent p 6677 or usermode agent p 0x1A15 TIPC this is the TIPC network connection If you do not want to use the default TIPC port type 70 and TIPC port instance 71 then you can choose 251 Wind River Workbench User s Guide 3 0 Linux Version and set the ones you want using this option The port numbers can be entered in either decimal or hexadecimal format To set the port numbers using the hexadecimal format you need to use the 0x x format where x represents the port number in hexadecimal base To launch the usermode agent using TIPC and port type 1234 port instance 55 usermode agent p 1234 55 or usermode agent p 0x4D2 37 Communication Option The communication option allows to specify which kind of connection will be used for connection between target server and usermode agent Comm option is comm serial tipc If the serial
180. dexing data is copied along with it After the import the data is treated as if it had been indexed by your workspace The import itself is automatic if you use Export gt C C gt Team shared index to export the data Wind River Workbench User s Guide 3 0 Linux Version Indexer Issues Other Indexer issues include You cannot configure external APIs as they are now associated with a project depending on the project type External APIs are supplied for Wind River specific project types such as Linux project types Macro references do not appear in the call hierarchy for MACROs that look like functions read write flags for variables do not appear in the Call Tree and polymorphic method calls are not honored in the Call Tree References to constructors destructors or implicit type conversions do not appear in the symbol list however declarations and definitions do An implicit conversion sequence is generated when the type of an argument in a function call does not match the type of the parameter It can make use of constructors to convert the argument to an object of the expected type Implicit constructor calls may be needed for the initialization of base classes automatic variables or returned values An implicit destructor call is necessary when an automatic variable goes out of scope For more information about the CDT Indexer see 10 5 Configuring the Indexer for Source Analysis p 176 and the C C Developm
181. ding a Project with Introduced Errors srssiniisnaisiioissi 262 Displayinga Piles HBW s cmniesansicsrnonnnncanmaneninmninedionssd 203 Rebuilding he Project sssrascssnesa TntrodtttiOik sssessinresrsreesraran ia issn reisan r rN O eNA EAAS E NERE 3 1 1 Checklist for Creating a Platform Project to Debug iassa eee eee eres eeccccccccce 33 37 37 38 38 39 49 51 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 Wind River Workbench User s Guide 3 0 Linux Version 3 1 2 Exploring Targets and Making Easier Connections 0 cc ee 53 313 Debungitic Applications idiascnupieaninioanimnnreiendainmaaee 53 3 1 4 Creating External Projects and Using Layers and Templates 54 Creating a Wind River Linux Platform Project sessssessssssessesesessesesessesseesseoseessess 54 Building the Target s File System and Kernel sessessessessesessessesseseosessessesseseosesse 57 Jol Pudins tme FE an 57 Soe Dking E TEE ior ER 57 33 3 Understanding What Else You Can Build siscciscuncssicanacinoncrsciaicanan 58 Configuring Target Connections serisinin a 61 3 4 1 Creating and Configuring QEMU Connections sss isiiisirsssmiciiiaes 61 3 4 2 Configuring Hardware Target Connections 0cecc eens 63 Configuring NFS to Export Root File Systems to the Target 63 Configuring TFIP to Provide a Kernel occnisunapnnnicvsienimennrnvinns 64 Creating an Actual Target Connection ssccisetnianinanieimasa
182. dow see Figure 1 1 right click an empty area and select New gt Example In the Select a wizard screen choose Native Sample Project and click Next In the Sample Project Template screen select The Hello World Demonstration Program and click Finish NOTE Your particular project choices may differ Workbench creates the hello_world project The sample project contains all the necessary files to build the program Right click the hello_world_Native project folder and select Build Project The executable is built The Build Console at the bottom of the Workbench window displays build output Expand the build target green container in the Project Explorer to see the executable hello_world_Native This is the build output or build result 2 Introducing Application Development 2 2 Running Hello World in a Native Mode Linux Environment L5 Project Explorer 3 File Navigator J amp Oo ve hello_world_Native Host OS Native Development Application Project a v W Build Targets Linux gnu native 3 x 4 x debug v hello_world_Native hello_world_Native gt l hello_world_Native recursive gt 3 Binaries gt al Includes gt Linux gnu native 3 x 4 x helloworld c E sample txt Your compiled application is now ready to be run on your target 2 2 2 Debugging hello_world with the Wind River Debugger To run and debug hello_world 1 Create a connection to the target
183. driver ide debug ui watchAction_context class com windriver ide debug internal ui actions WatchAction id com windriver ide debug ui editor watchAction gt lt enablement gt lt systemProperty name com windriver ide debug ui debuggerActive 289 Wind River Workbench User s Guide 3 0 Linux Version value true gt lt systemProperty gt lt enablement gt lt action gt lt action label SetPcToHereAction label menubarPath group debug helpContextId com windriver ide debug ui setPcToHereAction_ context class com windriver ide debug internal ui actions SetPcToHereAction id com windriver ide debug ui editor setPcToHereAction gt lt action gt lt action label RunToLineAction label icon icons actions hover run_to_line gif menubarPath group debug helpContextId com windriver ide debug ui runToLineAction_ context definitionId org eclipse debug ui commands RunToLine class org eclipse debug ui actions RunToLineActionDelegate id com windriver ide debug ui editor runToLineAction gt lt action gt lt viewerContribution gt Refer to Eclipse SDK documentation for more about these extension points 18 2 2 Understanding the Debug View Display The Debug view displays a hierarchical tree for each process being debugged The following examples show what might appear at each level of the tree with a general description of each level ball 2 Process on Target launch level launch name laun
184. e superproject of the project you are currently creating The check boxes in the Referenced subprojects list represent the remaining projects in the workspace that can be validly referenced as subprojects by the project you are currently creating When you are ready click Next NOTE All settings in the following wizard pages are build related You can therefore verify modify them after project creation in the Build Properties node of the project s Properties see 11 Building Projects A Native Application project is a predefined project type that uses Workbench Build support so you can only select either this or no build support at all If 8 Creating Native Application Projects 8 2 Creating a Native Application Project you are creating a project because you want to browse symbol information only and you are not interested in building it you could also disable build support The Build command specifies the make tool command line Build output passing If the project is a subproject in a tree its own objects implicit targets as well as the explicit targets of its subprojects can be passed on to be linked into the build targets of projects that are further up in the hierarchy When you are ready click Next Build Specs The list of available build specs will always be available By checkmarking individual specs you enable them for the current project which means that you will in normal day to day work only see rele
185. e then you try to create a new project with the same name as the old project you will see the following error T Project information already exists The directory C WindRiver workspace ball already contains project 2 information Continue anyway Project files will be overwritten Otherwise use the import wizard to get the project into the workspace If you click Yes your old project contents will be overwritten with the new project If you want to recreate the old project in Workbench click No then right click in the Project Explorer select Import then select Existing Project into Workspace Type the name of your old project or browse to the old project directory in your workspace click OK then click Finish Your old project will appear in the Project Explorer Cannot Create Project Files in Read only Location When Workbench creates a project it creates a wrproject file and other metadata A files it needs to track settings preferences and other project specific information So if your source files are in a read only location Workbench cannot create your project there To work around this problem you must create a new project in your workspace then create a folder that links to the location of your source files 347 Wind River Workbench User s Guide 3 0 Linux Version Create a User defined Project in your workspace by selecting File gt New gt User Defined Project The Target Operating Syste
186. e they can be defined Share to copy include paths of other sources into the team shared section Values need not be quoted or escaped They are passed to the indexer as they are For example click Add set MACROS5 as name and c as value This corresponds to define MACROS c Configuring Sources and Exclusion Filters Sources Filters Tab In the Sources Filters tab page of the Paths and Symbols dialog you can specify exclusion filters for the project Excluded files and folders are not parsed even if the Index all files option is set for the project see 10 5 1 Setting Indexer Preferences p 176 183 Wind River Workbench User s Guide 3 0 Linux Version The root nodes are source folders Per default there is only one single source folder the project root folder You should never replace this by another source folder Additional source folders however are allowed Figure 10 1 Sample Exclusion Filter Paths and Symbols ea ad Configuration z SSS Include Paths Symbols Sources Filters Miscellaneous External APIs Source folders on build path __ Add workspace folder amp cpp_demo gt Filter dummy dummy2 4 c arada Edit filter data In order to specify an exclusion filter select a source folder and click Edit filter data You can then add files and folders to be excluded Wildcards are supported In the example in the preceding figure the filter entry dummy
187. e Expand All capability is no longer available Old Workbench Watch View Local Variables SF h amp Registers Memory E T B E Name Yalue demo_counter 1 SK 0x00015F8C a 55 b 10x00015F8E December c 12345678 color red New Eclipse Expressions View i E le Me HY Expression demo_counter 4q REC_TYPEL short unsigned char 16 Ox00015F9E December long 12345678 color_type red 0x00015F9C 90012 000000257634 0b00000000000000010101111110011100 Ox00015F9C 23 Wind River Workbench User s Guide 3 0 Linux Version For more information about the Expressions view see the C C Development User Guide available from the Workbench help system The Eclipse Variables View Replaces the Local Variables View The functionality is basically the same but as in the Expressions view you cannot set radix for a single element and Expand All capability is no longer available Old Workbench Local Variables View Local Variables 2 Watch Registers Memory J e o Name Yalue demo_counter 1 pfa_demo 0 sum 5 cvar A a ose O SSS a 55 Hb 0x00015F8E December c 12345678 color red localint1 6 localLongt 305419896 New CDT Variables View o SNE Registers amp Expressions J Memory Type demo_counter long pfa_demo int sum int cvar unsigned char sq REC_
188. e Frame Function of the selected stack frame with Frame Function replaced by an actual function name Only available if the symbol data for the selected frame is present and the function name is known 18 2 4 Using Debug Modes Depending on the type of connection the debugger has to the target the debugger may be capable of operating in different modes Different debug modes have different capabilities and limitations which are mostly related to how the debugger interacts with the target and the processes that are being debugged Your target connection type determines possible modes as follows KGDB connection type Only supports debugging the kernel using a single execution context When the system context is suspended the kernel kernel threads and user processes are suspended also Usermode agent connection type Supports debugging user processes Processes and threads within processes are suspended and resumed independently of each other As a general rule when the target is being debugged in user mode the debugger interacts only with the process or processes being debugged If this process is suspended other processes keep running This mode is less intrusive as it allows the user to control the selected process or thread while the rest of the system can continue to operate normally 294 18 Debugging Projects 18 2 Using the Debug View In kernel mode the debugger interacts with the entire system at once so i
189. e Open Element or C C Search to search for a function named printf you get the locations of the function declarations with this name even if the project itself does not contain the corresponding header files In other words this allows you to find out which header files to include to build your sources successfully Turning off the external APIs for a project is useful if for example you are working on the source files that are actually the basis for the external APIs This avoids having two different indexes for the source files in the project one for the sources in the project and one for the corresponding external API that might reference outdated versions of the same source files 10 5 4 Updating a Project s Index Changing include paths or symbols for example via the Build Properties page or the Paths and Symbols property page has an immediate effect only on parsing modified and newly added files For performance reasons the index is not rebuilt automatically after such changes You have three different options to update the index manually in order to get more accurate source navigation Rebuild Right click the project in the Project Explorer and select Index gt Rebuild in order to clear the index and re parse all files in the current build scope for build driven setup or all files in the project no build target or the Index All Files option is enabled for a project or build output analysis is disabled or did not
190. e Specifying User Private Paths and Symbols Miscellaneous Tab p 185 Team Shared A set of include paths shared automatically in a team Add Folder Adds an include path marked by a folder icon Add File Adds an include file marked by a header file icon Generate Detects required include paths for unresolved include directives by analyzing the source files of the current project Edit Changes an entry in effect replacing it Substitute Allows replacing of path fragments by placeholders for instance build macros Wind River environment variables such as WIND_Home project location variables and so on 181 Wind River Workbench User s Guide 3 0 Linux Version Share Copies selected include paths and files from any section to the Team Shared sectionan include path marked by the folder icon Copy Copies an include path or file Remove Removes an include path or file Using Team Shared Paths Choose the Team Shared set of include paths and then one of the button actions in the right column Add Folder Add File Generate Substitute or Remove For example 1 Select an item or items in the Team Shared section 2 Click Generate The resulting settings are stored with others in the cproject file under the project folder You can now check this in with your project in your vesion control system NOTE You must not modify the cproject file manually because it is an essential part of the project Optiona
191. e Target name IP address field Click Finish A new target connection entry should appear in your Remote Systems view 64 3 Creating and Debugging Platform Projects 3 5 Running Usermode Agent on Non Emulated Targets 4 Right click the target connection and choose Properties 5 Inthe Target Server Options tab specify the target name and IP address and also the root file system that is the directory that should receive the build output For example If you are configured as shown in Figure 3 1 you could enter opt windriver ppc85xx for the root file system 6 Inthe Object Path Mappings tab If the target path is not or the host path is not your root file system directory use the Add button to specify them and select the single box for the pair you want to use 7 Click OK 3 5 Running Usermode Agent on Non Emulated Targets When you created the localhost connection to run Hello World in native debug mode see 2 2 Running Hello World in a Native Mode Linux Environment p 32 Workbench started a program called usermode agent on your host This program is used in Workbench communications between target and host In cross debug mode the agent must run on your target before Workbench can connect to it NOTE If you have configured a small root file system project usermode agent is not automatically supplied for it You need to add the template feature usermode agent See 3 10 1 Adding Templates to a Project p 82 W
192. e all files in the current build scope for build driven setup or all files in the project no build target or the Index all files option is enabled for a project or build output analysis is disabled or did not return any results NOTE Changing include paths or symbols for example via the Build Properties page or the Paths and Symbols property page only has an immediate affect on parsing modified and newly added files Rebuild the index manually if you need accurate source navigation Incorrect Include Paths and Symbols If the include paths and symbols are not set correctly For managed projects build properties are passed to the indexer If the project successfully builds the include paths and symbols are most likely correct Let Workbench detect include paths to resolve include directives using the ISP wizard see earlier in this section or specify additional paths manually in the build properties For user defined projects the indexer is set up automatically with include paths found through inspection of source code right after project creation To get better results you can perform a full build with enabled build output analysis for that purpose right click the project in the Project Explorer then select C C General gt Paths and Symbols and switch to the Discovery tab page Troubles Parsing Source Code If the indexer has troubles parsing the source code Open Window gt Preferences and go to section C C
193. e available in the workspace s projectname_prj export directory 113 Wind River Workbench User s Guide 3 0 Linux Version 114 Configuring Wind River Linux 5 1 5 2 5 3 5 4 5 5 5 6 5 7 Platforms Introduction 115 Configuring Wind River Linux Platform Kernels 116 Adding Kernel Modules to the Platform 117 Adding Build Targets for Analysis Tools 120 Working with Packages and Target File Systems 121 Using Quilt to Manage Patches 133 Automating Target Deployment 138 5 1 Introduction This chapter explains how to configure platform kernels add kernel modules to a platform work with packages build targets and target file systems handle RPMs manage patches and automate target deployment 115 Wind River Workbench User s Guide 3 0 Linux Version 5 2 Configuring Wind River Linux Platform Kernels When you build a kernel in a Wind River Linux Platform project you can easily view and modify the current kernel configuration with Workbench This section summarizes the major uses of the kernel configuration tools For detailed reference information on the Kernel Configuration node refer to Wind River Workbench User Interface Reference Kernel Configuration Editor Workbench provides a Kernel Configuration node for Wind River Linux Platform projects that presents the standard Linux configuration choices in a convenient GUI that quickly shows inter dependencies and provides additional information on each confi
194. e bottom right of Figure 1 1 has six tabs along the top Click a tab to display its view Moving and Maximizing Views Move a view by clicking either its title bar or its tab in a stacked notebook and dragging it to a new location You can relocate a view by Dragging it to the edge of another view then dropping it The area is then split and both views are tiled in the same area The cursor changes to an appropriate directional arrow as you approach the edge of a view Editors Perspectives Figure 1 2 Wind River Workbench User s Guide 3 0 Linux Version Dragging it to the title bar of an existing view then dropping it The view will be added to a stacked notebook with tabs When you drag the view to stack it the cursor changes to an icon of a set of stacked folders Dragging it over a tab in an existing view causing the view to be stacked in that notebook with its tab at the left of the existing view You can also drag an existing tab to the right of another tab to arrange tabs to your liking To quickly maximize a view to fill the entire perspective area double click its title bar Double click the title bar again to restore it An editor is a special type of view used to edit files You can associate different editors with different types of files such as C C Assembler and makefiles When you open a file the associated editor opens in the perspective s Editor area Any number of editors can be open
195. e breakpoints in the same ways that you disable and remove standard breakpoints Converting Breakpoints to Hardware Breakpoints To cause the debugger to request that a line or expression breakpoint be a hardware code breakpoint select the Hardware check box on the General tab of the Line Breakpoint or Expression Breakpoint dialog boxes This request does not guarantee that the hardware code breakpoint will be planted that depends on whether the target supports hardware breakpoints and if so whether or not the total number supported by the target have already been planted If the target does not support hardware code breakpoints an error message will appear when the debugger tries to plant the breakpoint NOTE Workbench will set only the number of code breakpoints with the specific capabilities supported by your hardware NOTE If you create a breakpoint on a line that does not have any corresponding code the debugger will plant the breakpoint on the next line that does have code The breakpoint will appear on the new line in the Editor gutter In the Breakpoints view the original line number will appear with the new line number in square brackets after it See the third breakpoint in Figure 16 1 Comparing Software and Hardware Breakpoints Software breakpoints work by replacing the destination instruction with a software interrupt Therefore it is impossible to debug code in ROM using software breakpoints Hardwa
196. e build targets are the usual with the addition of prepatch which allows you to prepare the package for patching see 5 6 Using Quilt to Manage Patches p 133 The prepatch button Extracts any RPMs for the package that you selected 127 Wind River Workbench User s Guide 3 0 Linux Version Registers kernel patches Registers patch files Prepares the Quilt patches directory see 5 6 Using Quilt to Manage Patches p 133 Debugging Packages The debugging features available via the User Space Configuration node give you the ability to select individual packages and build them with debugging turned on or off regardless of the rest of the pre built packages in your project The result is a very efficient use of the debugger and development debug time To enable and disable debugging for a package select the package the Options tab and select or clear the Debug box To enable debugging for a package 1 2 3 4 Select the package Select the Options tab Check the Debug check box Click Apply If you look in the pkglist file and find the package you just marked for debugging the package name has BUILD_TYPE debug next to it To turn off debugging 1 2 3 4 128 Select the package Select the Options tab Uncheck the Debug check box Click Apply 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems 5 5 4 Using the File System Layout Configurati
197. e configured features These projects can be anything and it is up to the user to organize and maintain the build system target file system population and so forth Native Application Project A native application project is built and run on the host computer In effect your Workbench host serves as the target See 2 2 Running Hello World in a Native Mode Linux Environment p 32 for an example of building a native application project 6 5 Projects and Project Structures All individual projects of whatever type are self contained units that have no inherent relationship with any other projects The system is initially flat and unstructured You can however construct hierarchies of project references within Workbench These hierarchies will reflect inter project dependencies and therefore also the build order 148 6 Projects Overview 6 5 Projects and Project Structures When you attempt to create such hierarchies of references this is validated by Workbench that is if a certain project type does not make sense as a subproject of some other project type or even the same project type such a reference will not be permitted 6 5 1 Adding Subprojects to a Project Workbench provides the following ways to create a subproject superproject structure You can use the Add as Project Reference dialog In the Project Explorer right click the project that you want to make into a subproject and choose References gt Add as Project Refer
198. e for a common_pc_64 project The owner and group The file s parent package util linux 2 13 0 52_WR_a Adding Files and Directories to the File System To add files and directories 1 2 Right click on the directory usr and select New gt Folder Enter the name samples Observe that the new folder is added with a icon Right click the directory usr samples and select Add Browse to the workspace and select a build sample project binary for example tmp workspace mthread common_pc glibc_std i686 mthread Debug mthread out 131 Wind River Workbench User s Guide 3 0 Linux Version Working with Packag A new file appears with a icon and the Location column contains the host file system source path NOTE This step assumes that you have built an application project specifically for this example the mthread application es To view parent packages and remove packages 1 Right click and select View gt Packages The tree shows each package and its part in the target tree To remove a package for example the optional Perl package and all Perl scripts 1 2 Adding a Device and Open the tree to perl 5 8 7 1_WR_a usr bin Right click this directory and select Remove All files in this directory now have a icon Right click perl 5 8 7 1_WR_a usr directory and select Remove nn Now all resources under Perl are marked with icon Set the Pattern Filter va
199. e mappings takes care of editor selection and painting of the instruction pointer in the editor gutter However to associate other debugging actions with the new editor you must modify the Eclipse extension point org eclipse ui editorActions For example the breakpoint double click action associated with the Workbench Editor looks like this lt extension point org eclipse ui editorActions gt lt editorContribution target ID com windriver ide editor c id com windriver ide debug CSourceFileEditor BreakpointRulerActions gt lt action label Dummy label class com windriver ide debug internal ui breakpoints actions ToggleB reakpointRulerAction actionID RulerDoubleClick id com windriver ide debug ui actions toggleBreakpointRulerAction c gt lt action gt lt editorContribution gt Other features that are by default configured to work only with the Workbench Editor are Run to line Set PC to here and Watch These features are configured through following extensions lt viewerContribution target ID WREditorContext id com windriver ide debug ui editprpop up actions gt lt visibility gt lt and gt lt systemProperty name com windriver ide debug ui debuggerActive value true gt lt pluginState value activated id com windriver ide debug ui gt lt and gt lt visibility gt lt action label sWatchAction label icon icons actions hover watch_exp gif menubarPath group debug helpContextId com win
200. e that you can switch from your current workspace to another by selecting File gt Switch Workspace 1 3 Recognizing Concepts in Common with Eclipse Wind River Workbench is based on the Eclipse platform Basic features of Workbench are common to all Eclipse based systems For a more details select Help gt Help Contents gt Wind River Partners Documentation then expand the Wind River Workbench User s Guide 3 0 Linux Version Eclipse Workbench User Guide entry or navigate to the Eclipse Workbench Users Guide at www eclipse org documentation main html Window view tabbed notebook editor and perspective describe features of Eclipse based systems This section outlines these terms and explains how to use these features Windows The term window is used only for the overall outer frame shown in Figure 1 1 Use Window gt New to create a new outer frame as part of the same Workbench session then use the new window to open additional views within the same perspective see Perspectives p 10 Figure 1 1 Workbench Windows De Get Rebas Nape Sa Daa Andere Tap Dn Window Hiei reg eroen amp Bama a B OOQ eORSr Yee vi o SS Apico a SO Fe Nager I TO O asm an 4 ce 7 An obna n net ay alate P Outline Project Explorer Editor View Bi Renae Syers TT Korai Otjes e Enne se gt Oua Almis Problems O Properties O Guid Comae Ul Feeds O Comae axs r7s Remote Systems oom a Tasks and Other Tabs O neer
201. ect Run gt Add Expression Breakpoint In the Breakpoint Location and General Attributes dialog enter do_fork in the Location Expression box Click OK 4 Kernel Debugging Kernel Mode 4 6 Debugging User Supplied Kernel Modules NOTE If the do_fork location as a breakpoint does not work on this installation note it and choose another kernel entry point For possible explanations see 4 2 5 KGDB and Safe Areas when Debugging the Kernel p 92 4 Enter a command for example Is press ENTER only once on the target It will not return because execution has stopped at the fork The Source Editor should open to the fork c source file Clicking the Resume icon will allow the command to complete and the next fork for example another command will again cause a break 5 To complete this example remove the breakpoint and click on the Resume icon to continue execution of the kernel 6 Toend the session right click the target connection in the Remote Systems view and select Disconnect 4 6 Debugging User Supplied Kernel Modules Workbench includes a sample project to demonstrate kernel module debugging as discussed in this section This example requires that you have access to the kernel source you used to build the kernel and that you have terminal or console window access to the target 4 6 1 Building the Sample User Supplied Kernel Module To build the sample user supplied kernel module 1 Start Wind River Workbench runnin
202. ect has a set of build properties which you can use to change target specifications relocate build output see and modify the actual build command line and more To configure project properties 1 Right click the project for example ball Wind River Linux Platform 2 0 Application 2 Choose Properties 3 Click Build Properties in the left of the Build Properties dialog If there is no Build Properties choice listed between the entries Resource and Builders you have not specified the build specs for your project See 2 3 1 Checking and Setting Your Build Specs p 37 4 Set the active build spec other build support items such as debug mode and managed build and any other appropriate settings under the various other tabs such as Build Support and Specs Build Tools Build Macros Build Paths and Libraries For the current project example you should not need to specify any changes but they are available for reference Macro values change according to the active build spec and you would not typically modify them LAYER is the directory from which the sysroot was defined for example installDir wrlinux 2 0 Use the Libraries tab to specify library search paths and filenames such as L path and for libraries l lib 5 Click OK to save any modified build properties The build target after Build Targets in the Project Explorer is your build spec name 45 Wind River Workbench User s Guide 3 0 Linux Version 2
203. ecting Projects to Build When selecting multiple projects including Workbench and CDT projects and executing any build action the build action is only executed on Workbench projects Displaying File and Editor Associations The Workbench Project Explorer displays icons for the default editor of a file if file associations have been defined If CDT is the default editor the corresponding icons will also show up in the Application Development perspective C C Perspective CDT Source Analysis Source analysis is available from the context menu of the Project Explorer 326 21 Using Workbench in an Eclipse Environment 21 4 Using CDT and Workbench in an Eclipse Environment Building Workbench Projects CDT Build Project and Clean Project actions are enabled for Workbench projects and they execute the appropriate build commands correctly Working with Workbench Binary Targets There are no actions to directly run debug or download a Workbench project s binary target in this perspective 21 4 2 Workflow in the Build Console Application Development Perspective Workbench When adding a CDT project as a sub project project reference to a Workbench project the Clear Build Console flag is ignored when executing a build on this project C C Perspective CDT Executing a build on a Workbench project from this perspective correctly opens the Workbench Build Console General When navigating to errors from the Work
204. ecting a configuration and clicking Move Up or Move Down The sub launch at the top of the list will come first and the one at the bottom last You can remove any sub launch from the Launch Control configuration by selecting it and clicking Remove You now have a Launch Control configuration that will launch a sequence of sub launches in the order specified in the Configurations to Launch list You can also specify commands to perform before launches after launches and in response to a launch failure or an application error report as discussed in the next section Each launch in a Launch Control will open a Console view for I O and error messages as described in 17 6 Launches and the Console View p 281 Pre Launch Post Launch and Error Condition Commands To access the launch configuration commands select a sub launch in your Configurations to Launch list and click Properties or double click the sub launch A properties page containing command information is displayed Here you can specify pre launch post launch and error condition commands which will inherit the environment variables shown below them unless you change them in the command Your changes affect the launch you are working with only other launches using the same configuration get the default values for the environment variables Also the set of environment variables differs for each launch configuration see Understanding the Command Environment p 279 for more on environm
205. ecutables to require fewer relocations to be resolved at runtime 82 3 Creating and Debugging Platform Projects 3 10 Customizing Builds with Layers and Templates Table 3 3 Supplied Project Configuration Templates Template Purpose feature uclibc Replace glibc with the uclibc C library for MIPS and ARM targets with one or more uclibc rootfs names feature unionfs Allow booting from CDROM for BSPs with CDROMs To create and add custom templates to a project see Wind River Linux Platforms User s Guide 2 0 Although you may place custom templates anywhere they typically reside outside of both the development and build environments Custom templates are processed last after all other templates Because of this they are especially useful for Kernel configuration file fragments that must come at the end of a kernel configuration file Additions to file system configuration files for example networking configuration files in etc sysconfig that may have to override default values The pkglist add and pkglist remove files that may have to override previous package list files You also may add a one line kernel configuration to be processed last 3 10 2 Adding Layers to a Project To add layers to a platform project 1 Take the initial steps in creating the project to the point where you have named it and have reached the Configure Options screen follow up to Step 5 in 3 2 Creating a Wind River Linux Platform
206. ed color syntax highlighting Select Window gt Preferences gt General gt Appearance gt Colors and Fonts Expand the Basic folder in the Colors and Fonts pane and select Text Font Click Change and select Family Courier 10 Pitch Style Regular Size 10 Click OK Move the Preferences dialog box out of the way to uncover the main c editor window if necessary Click Apply to see the changes without closing the dialog box Explore and experiment with other preferences Click Restore Defaults if you prefer the default settings Click OK 2 Introducing Application Development 2 4 Using the Editor 2 4 2 Navigating in the Source You can find your way in source files using The Outline view which lists elements and symbols in the file in focus in the editor Find utilities to locate symbols elements and strings Using the Outline View In the Outline view click any item in the list to focus the editor on its declaration Hover over the buttons in the toolbar to see how to filter the list of names in the view You can sort them hide fields and static members and hide non public members Note that the elements are sorted within types The Outline view is limited to the names declared in the file that is open in the editor To find the declaration of any symbol appearing in the editor right click the symbol in the Editor view then click Open Declaration For example 1 Inthe Outline view click mai
207. ed for the Kernel GNU Debugger KGDB which communicates with the standard GNU debugger GDB on the host KGDB is enabled by default for Wind River Linux kernels and only needs to be disabled when going to production Kernel mode source code debugging allows you to debug the kernel using suspends breakpoints and so on as you would with user mode debugging Kernel mode debugging is described in 4 Kernel Debugging Kernel Mode NOTE If user mode and KGDB debugging connections are used in parallel for the same target the user mode connection stalls when a KGDB breakpoint is reached 1 Overview 1 7 What s New in Eclipse Related Changes 1 7 What s New in Eclipse Related Changes Workbench has adopted the latest versions of CDT The Eclipse C C Development Toolkit Eclipse device debugging Eclipse target management connections The workflows and target connections are very similar to past versions of Workbench But some Eclipse views have totally replaced their Workbench counterparts static symbol browsing has changed significantly and though comparable icons and graphics are different This section alerts you to these and similar Eclipse related changes For information about other enhancements to Workbench see the release notes for your platform at http www windriver com support 1 7 1 Working with Projects The Eclipse Project Explorer replaces the Workbench Project Navigator It supports your Linux
208. ed so far For example with the main c file in the editor 1 Position your cursor inside main to the right of the first character and press ENTER 2 Type the first two characters of grid and then invoke code completion by pressing CTRL SPACE A dialog box appears with suggestions As you continue to type your choices narrow 3 Select gridAddBall BALL pBall point point void from among the choices then press ENTER to add the routine to the cursor location in the editor 2 4 4 Getting Parameter Hints for Routine Data Types Parameter hints describe the data types that a routine accepts To see the data type descriptions for a routine s parameters 1 Type a routine name followed by an open parenthesis for example ballNew 42 2 Introducing Application Development 2 4 Using the Editor When you type the open parenthesis the editor supplies the closing one and places your cursor between the two 2 2 Press CTRL SHIFT SPACE 2 The parameter hints appear reminding you of the parameter types defined by the routine You can copy and paste the hints if you wish 2 4 5 Finding Beginning and End of a Code Section Bracket matching lets you find the end or beginning of sections of code such as functions comments and so on Bracket matching operates on the following characters parentheses brackets braces quotes comments and lt gt C C only To use bracket mat
209. ed to launch RTP philosophers vxe on vxsimO host Create Failed Target errno reported 5_rtpLib_INVALID_FILE Please check that the target can see the file as well as all required shared libraries through its filesystem and ensure that the host copy is accessible by the tools Trying to run the original command in a shell on the target may produce additional errors for diagnostics Commandline used c WindRiver workspace philosophers SIMPENTIUMdiab_RTP_DEBUG philosop If the target side path looks correct but you still get this error recheck the path you gave Even if you used the Browse button to locate the file it will be located in the host file system The Object Path Mapping that is defined for your target connection will translate it to a path in the target file system which is then visible in the Exec Path edit field If your Object Path Mapping is wrong the Exec Path will be wrong so it is important to check 352 A Troubleshooting A 6 Error Messages Troubleshooting Running a Process If you have trouble running your process from the Run Process or Run Real time Process dialog boxes try these steps 1 If the error Cannot create context appears verify that the Exec Path on Target is a path that is actually visible on the target and does not contain the equivalent host side path instead a Right click the process executable in the Project Explorer or right click Processes or Real time Processes in the Remo
210. efault packet packet size is sent first followed by packet content the packet is handled only when fully received proto describes how the connection is handled between the proxy and the target and is raw proxy does not handle any protocol default wdbserial VxWorks targets only proxy converts packet to wdbserial When proto is wdbserial some control characters are inserted by the proxy in the packet sent to the target so that the generated packet will be understood correctly by the target using a WDB serial backend This is typically used to connect to a WDB agent running on a target through a serial line that is connected to the serial port of a port server this serial line is then accessible by the proxy using a well known TCP port of the port server Connection specific Parameters udpsock and tcpsock connection port port tgt tetAddr Where port is the TCP UDP port number and tgtAddr is the target IP address tipcsock connection Linux only tipcpt tipcPortType tipcpi tipcPortInstance tgt tetAddr Where tipcPortType is the TIPC port type tipcPortInstance is the TIPC port instance and tgtAddr is the TIPC target address create D Configuring a Wind River Proxy Host D 3 wrproxy Command Summary The response of the Wind River proxy to the connect command is a string as follows ok or error errorString where errorString describes the cause of the error Create a new proxy port mapping to a
211. elect File gt Example from the menu bar b Select Wind River Linux Sample Project and click Next Select Wind River Linux Kernel Module Sample Project and click Next Q an Select the Example Kernel Module Demonstration and click Finish A new project called testmod appears in the Project Explorer Select and open an existing platform project in Workbench a Select Project gt Property gt Project References then select testmod Note that the testmod project disappears from the Project Explorer and appears inside the platform project b Open the platform project and find the sub project testmod c Right click testmod and select Build Project The module testmod ko appears in the directory of the testmod sub project If you do not see it under the project icon right click on the project and select Refresh NOTE For the kernel module to build the Linux package must be already built by building the linux build target for example In the terminal view or console on the target get the new file to the target and use the insmod command to install the module kgdb _target_ ftp your host kgdb _target_ ed myhome workspace moduleDebug kgdb _target_ get testmod ko kgdb _target_ quit kgdb _target_ insmod testmod ko timeout 2340 4 Kernel Debugging Kernel Mode 4 6 Debugging User Supplied Kernel Modules Verify that the console output shows testmod kgdb target _ dmesg tail Loading testmod timeout i
212. elect Paste Issuing Remote Shell Commands to Your Target To issue remote shell commands 1 Right click Ssh Shells under the connection in the Remote Systems view 2 Select Launch shell A Remote Shell view opens in Workbench with the name of the connection 68 3 Creating and Debugging Platform Projects 3 8 Using the One Step Launch Configuration 3 Inthe Command text box in the Remote Shell view enter a command such as uname a and press ENTER Command output appears in the Remote Shell s terminal window area 3 4 Use the up or down arrows at the end of the Command field to retrieve E previously issued commands You can have multiple such shells open at the same time which would be useful if you are tracking disparate tasks 3 8 Using the One Step Launch Configuration You can tailor the default launch configuration and then use it at any time as a one step process to connect to your target and launch the program NOTE This section assumes that your target is running the usermode agent as described in 3 5 Running Usermode Agent on Non Emulated Targets p 65 3 8 1 Accepting the Automatic Debug Launch Configuration Workbench automatically specifies certain parameters for the default launch configuration for Linux application projects When you select the application s Binary node in the project folder and choose Debug Process on Target the automatic settings include Adding the application image to the
213. en you are ready click Finish Your project appears in the Project Explorer 7 4 Configuring User Defined Projects After you create your project configure its build targets specs and macros For general details about build properties see 11 4 Accessing Build Properties p 196 or press the help key for your host 1 To access build properties for your project right click it in the Project Explorer and select Properties 2 From the Properties dialog click Build Properties NOTE Build tools and build paths cannot be configured for user defined projects The makefiles for user defined projects can use values from the build specs to help set the correct cross compile toolchain and architecture from the target s sysroot 7 4 1 Configuring Build Support Use this tab to configure build support for your project 1 Build support is enabled by default Click Disabled to disable it and click User defined build to re enable it 2 If necessary edit the default build command 3 Specify whether received build targets should be passed to the next level 4 Specify when Workbench should refresh the project after a build Because a refresh of the entire project can take some time depending on its size Workbench does not do it by default You may choose to refresh the current project the current folder the current folder and its subfolders or nothing at all This option applies to all build runs of the project 153 Wi
214. ence or select the project and choose Project gt Add as Project Reference In the dialog you will see a list of valid superprojects you can select more than one You can use the Project References page in the Properties dialog In the Project Explorer right click the project that you want to make into a superproject and choose Properties or select the project and choose Project gt Properties Then select Project References In the dialog you will see a list of projects select the ones that you want to make into subprojects Subprojects appear as subnodes of their parents superprojects Workbench validates subproject superproject relationships based on project type and target operating system It does not allow you to create certain combinations In general a user defined project can be a subproject or superproject of any other project with a compatible target operating system 6 5 2 Removing Subprojects To undo a subproject superproject relationship use one of these methods In the Project Explorer right click the subproject and choose References gt Remove Project Reference or select the subproject and choose Project gt Remove Project Reference In the Project Explorer right click the superproject and choose Properties or select the superproject and choose Project gt Properties Then select Project References and clear the subprojects that you want to disassociate from their current parent 149 Wind Ri
215. encing a problem with Workbench that is not covered in this chapter please see the Wind River Workbench Release Notes for your platform 335 Wind River Workbench User s Guide 3 0 Linux Version A 2 Startup Problems This section discusses some of the problems that might cause Workbench to have trouble starting Workspace Metadata Is Corrupted If Workbench crashes some of your settings could get corrupted preventing Workbench from restarting properly 1 336 To test if your workspace is the source of the problem start Workbench specifying a different workspace name On Windows Select Start gt Programs gt Wind River gt Workbench 3 0 gt Wind River Workbench 3 0 then when Workbench asks you to choose a workspace enter a new name workspace2 or whatever you prefer Or if the Workbench startup process does not get all the way to the Workspace Launcher dialog box or does not start at all start it from a terminal window gt installDir workbench 3 0 wrwb platform eclipse x86 win32 bin wrwb exe data newWorkspace On Linux or Solaris Start Workbench from a terminal window specifying a new workspace name gt startWorkbench sh data newWorkspace NOTE For more information on Workbench startup options see Help gt Help Contents gt Wind River Partners Documentation gt Eclipse Wo rkbench User Guide gt Tasks gt Running Eclipse If Workbench starts successfully with a new workspace exi
216. ent User Guide available from the Workbench help system Debug and Static Analysis Symbol Browsing Have Been Separated Static analysis is now known as source analysis The Symbol Browser use to display static analysis and debug symbols Now The Debug Symbol Browser replaces the Symbol Browser They look the same but the Debug mode icon is gone The functionality of the Static Symbol Browser has been replaced by The C C Search dialog CTRL H then select the C C Search tab lists results in a separate view from which you can navigate The Open Element dialog SHIFT F3 lists symbol matches as you begin typing and you can navigate to the desired symbol by clicking it 1 Overview 1 7 What s New in Eclipse Related Changes New C C Search and Open Element Dialogs Ea File Search ki C C Search E3 Java Search gt Plug in Search Search string any string any character fain x C Case sensitive Search For r Limit To ch 23 A Sear Class Struct Function Variable O Declaration Find refer ETETA Field O Reference Namespace Union Enumeration Typedef Scope Workspace O Working set esources O Endosing projects gemm Open Element MM Enumeration M Union Matching elements fd_mask fds_bits flock Foobar feblkent_t fsfilntt Qualified name and location
217. ent variables Preparing a Launch with a Pre Launch Command An example of the use of a pre launch command is to prepare a target for use For example in a development environment you might have to reserve a target and you would not want to attempt a launch without being sure you had a target to launch on So a pre launch command might be a script that reserves the board puts usermode agent in the root file system reboots the board and starts usermode agent 277 Wind River Workbench User s Guide 3 0 Linux Version If the pre launch command returns a non zero return code then the launch is aborted and the error condition command is executed for each sub launch previous to the failed sub launch Using a Post Launch Command If your application requires additional set up after it has been launched or if you would like to verify that it has launched correctly before proceeding to the next launch use a post launch command If the post launch command returns a non zero return code then the launch is aborted and the error condition command is executed for each sub launch previous to the failed sub launch as well as for the failed sub launch Using the Error Condition Command The error condition command of a launch is run when a launch fails or a pre launch or post launch command returns a non zero error code This causes the error command of the current launch to run and then each error command of any preceding launches to
218. env tool is wrenv sh p package name where package name is the package name as it appears in the install properties file For Wind River Linux 2 0 the command is wrenv sh p wrlinux 2 0 365 Wind River Workbench User s Guide 3 0 Linux Version This spawns a sub shell with the environment for the selected package name in this case wrlinux 2 0 In this shell the Wind River Linux tool chain and other required environment variables will be preset See the documentation for wrenv to learn about other options and usages Setting the Environment with Workbench To open a shell for a specific project and have its environment automatically preset 1 Select a project in the Project Explorer 2 Select Project gt Open Shell You now have a shell in that project s directory with the Wind River Linux environment You can stay with this simple shell or open a preferred shell like sh on Windows or bash and csh on Solaris and Linux If this is a platform project you can cd over to its configured project directory as follows cd project_name_prj Executing Workbench Build Commands Workbench and its build system are designed to allow the build process to be as simple and automatic as possible Sometimes it is valuable to take a build command from Workbench and run it on the command line Reasons may include There may be a very complicated build issue perhaps with a new BSP or a makefile where you want to expl
219. er at project creation time If you want to use custom make rules enter these in wrmakefile not in Makefile because Makefile is regenerated for each build The template makefile wrmakefile references the generated macros in the 197 Wind River Workbench User s Guide 3 0 Linux Version placeholder IDE_GENERATED so you can add custom rules either before or after this placeholder You can also add makefile files to the project directory For other ways of setting custom rules see 12 6 User Defined Build Targets in the Project Explorer p 210 NOTE If you configure your project for a remote build the generated Makefile contains paths for remote locations rather than local ones For more information about remote builds see 12 7 Developing on Remote Hosts p 213 11 5 1 Derived File Build Support The Yacc Example Workbench provides a sample project yacc_example that includes a makefile extension showing how you can implement derived file build support It is based on yacc Yet Another Compiler Compiler which is not contained in the Workbench installation To actually build the example you need to have yacc or a compatible tool like GNU s bison installed on your system and you should have extensive knowledge about make The makefile yacc makefile demonstrates how a yacc compiler can be integrated with the managed build and contains information on how this works 1 Create the example project by selecting N
220. er files and other files and directories that are essential to the infrastructure of your projects The ones that came with your installation are automatically available in Workbench These are in installDir wrlinux 2 0 sysroots You may put others in directories such as myroots and specify the directory pathnames in Workbench To add sysroots you must specify their directory 1 Choose Window gt Preferences gt Wind River gt Wind River Linux 2 Click Add to the right of the Sysroots panel 3 Browse to the location of your sysroots 4 Click OK the extended templates from layers It is not necessary to install additional sysroots for application development See Installing Multi lib Packages and Exporting Their Sysroots p 126 for multi lib specific information 37 Wind River Workbench User s Guide 3 0 Linux Version 2 3 2 Creating a Wind River Linux Application Project Create a new application project in your workspace as follows 1 Right click in the Project Explorer and and choose New gt Wind River Linux Application Project 2 Specify ball as the project name 3 Follow one of these two paths to confirm you can view the active build spec and set it differently Click Finish then right click the project in the Project Explorer and select Build Options gt Set Active Build Spec Or Click Next and continue clicking Next until you come to the Build Specs window In the Active build spec f
221. er to go back out of the project you are in or to navigate history views Open a project in a new window If you expect to be switching back and forth between software systems or other contexts at short intervals and you do not want to change your current configuration of open editors and layout of other views you can open the other software system s root project in a new window right click Open in New Window This essentially does the same as Go Into see Go Into a Project except that a new window is opened thereby leaving your current Workbench layout intact Open a new window You can open a new window by choosing Window gt New Window This opens a new window to the same workspace leaving your current Workbench window layout intact while you work on some other context in the new window 9 Working in the Project Explorer 9 6 Moving Copying and Deleting Resources and Nodes Use Working Sets You can use working to set the scope for all sorts of queries You can for example create working sets for each of your different software systems or any constellation of projects and then scope the displayed Project Explorer content and other query requests using the pull down at the top right of the Project Explorer To create a Working Set from the drop down menu choose Select Working Set In the dialog that appears click New then in the next dialog specify the Resource type In the next dialog select for example
222. er you have run it recently or not 2 To run a configuration not listed on the menu click Debug choose the configuration from the Configurations list and click Debug NOTE Different launches are associated with perspectives To change the perspective go to Run gt Debug Select a launch type on the left and then you can select the desired perspective for either Run gt Run or Run gt Debug Increasing the Launch History Workbench stores a history of previously launched configurations The default length of the launch history is 10 but you can increase the history length by selecting Window gt Preferences gt Run Debug gt Launching and increasing the number in the Size of recently launched applications list field 271 Wind River Workbench User s Guide 3 0 Linux Version Troubleshooting Launch Configurations If you press the Debug button or click the Debug button from the Launch Configuration dialog box and get a Cannot create context error check the Exec Path on the Main tab of the Debug dialog box see page 272 to be sure it is correct Also check your Object Path Mappings 17 3 Remote Java Launches There are four Java launch configuration types in Workbench Java Applet Java Application Remote Java Application Remote Java Launch and Connect The first three are standard Eclipse with JDT launch configuration types Java Applet and Java Application are for native mode debugging of Jav
223. ernel Modules Right click in the gutter to insert a System Context breakpoint there NOTE If the break point cannot be planted make sure you added the Object Mapping as described earlier Also do not single step from the break at sys_init_module to this location you will hit spin locks that will block your KGDB connection On the target start the module kgdb _target_ insmod moduleDebugExample ko In a moment the Debug view shows the System Context as stopped and load_module highlighted the editor opens module c file to the location of the breakpoint Note that the target window is hung at the insmod command Ensure that the moduleDebugExample ko is registered by the Remote Systems view Examine the window for your target connection and look for moduleDebugExample ko in the list on installed kernel modules under Processes If is not present take the following steps to synchronize the remote systems view a Un expand the icon for the target labeled Processes b Click the Refresh button in the Remote Systems view s tool bar c Re expand the icon for the target labeled Processes d It the module does not yet appear repeat the above steps Ensure that the symbols for moduleDebugExample ko are loaded Examine the Remote Systems view for your target and look for moduleDebugExample ko in the list on installed kernel modules under Processes The icon for this module should be decorated with a red S If it is not rig
224. ernel symbol file for example home wbuser WindRiver workspace new_prj export vmlinux symbols Advanced Options KGDB Only Backend Communication Log File Enter or browse to the location of a file to store log information Target Plugin Pass through Options See 4 6 Debugging User Supplied Kernel Modules p 101 Advanced Target Server Options These options are passed to the tgtsvr program on the command line user mode only Enter these options manually or use the Edit button for GUI assisted editing Edit Target Server Options Open the Edit Target Server Options window with the Edit button on the main wizard page The options are subdivided into three tabbed groups Common Memory and Logging 232 13 Connecting to Targets 13 5 Connection Settings The Common Tab Timeout Options Set how many seconds the target server will wait for an answer from the target before sending a timeout how often to retry and at what intervals it should ping the target in seconds The Memory Tab Memory Cache Size To avoid excessive data transfer transactions with the target the target server maintains a cache on the host system By default this cache can grow up to a size of 1 MB A larger maximum cache size may be desirable if the memory pool used by host tools on the target is large because transactions on memory outside the cache are far slower The Logging Tab 1 Options on the logging tab are used mainly for troubleshootin
225. es 3 Click a value to change it from true to false or from false to true The Pass attribute controls whether a signal sent to a process should actually be passed to it This attribute s values act as follows When true the process silently discards the signal When false the process cannot silently discard the signal The Suspend attribute controls whether the process should suspend or not when receiving the signal This attribute s values act as follows When true the signal suspends the process when the process receives it When false the process continues running after it receives the signal 18 2 9 Changing Source Lookup Settings Source Lookup maps debugger source file paths to the actual file locations in the workspace and the host file system The paths for source files are read by the debugger from the symbol data of the executable being debugged The compiler generated them when the executable was built and they are often different from the paths to those files when debugging For information about how to set up Source Lookup Path settings see the Wind River Workbench User Interface Reference Source Lookup Path Dialog 297 Wind River Workbench User s Guide 3 0 Linux Version 18 3 Stepping Through Assembly Code To view assembly code interleaved with the corresponding source code 1 Click the Toggle Assembly Stepping Mode button as shown in the following example which shows penguin in the
226. es for example The export directory contains a link named for example arm_versatile_926ejs zImage WR2 0au_std to the actual kernel in project_prj build linux 2 6 21 std arch arm boot zImage The export directory also contains the kernel symbol file for example arm_versatile_926ejs vmlinux symbols WR2 0au_std a link to the actual file project_prj build linux 2 6 21 std vmlinux The export directory actually contains more files than those just described 3 3 3 Understanding What Else You Can Build This section provides an overview of what appears in a platform project s folder part of which is shown below Kernel Configuration Al User Space Configuration TA build all Mt export sysroot fs A kernel_build Mt kernel_rebuild A shell 58 3 Creating and Debugging Platform Projects 3 3 Building the Target s File System and Kernel The project folder includes the following nodes kernel configuration user space configuration build and project files Kernel Configuration node Right click and choose Edit Linux Kernel Configuration to view and modify the kernel s config file see 5 2 Configuring Wind River Linux Platform Kernels p 116 User Space Configuration node Right click and choose Edit User Space Configuration then click Packages or Filesystem the lower left tabs in the central Packages window to add or remove file system RPMs and to see the export dist target file system see 5 5
227. es sripit 173 Prioridad Templates nangndi a einduaees 174 Configuring a Custom Editor acccadinumdoninnnanniinmainnnrins 175 a Pearce Ke plate cicintiesinnenne sees onenenenemnanecenanmes 175 10 5 Configuring the Indexer for Source Analysis ssssssssssseseseseseeenssesesseneees 176 10 51 Seting Indexer Preterences asierea irn EN 176 Global Workspace Preferences scusensnnanssrnassaisiramaniri 176 Project Specitie Properties ssssimsssnriiune ankane AEAN 177 US Bitne Puld Propirics manine 177 Setting Build Properties for Managed Projects imsis 177 Setting Build Properties for User Defined Projects cecceeee 179 10 53 petting Up Paths and Symbols sismianicncamoinnsumemaniuns 180 Managing Include Paths for the Indexer Include Paths Tab 181 Configuring Indexing of Symbols Symbols Tab 0 0 0 183 Configuring Sources and Exclusion Filters Sources Filters Tab 183 Setting Up a Build Driven Index Discovery Tab scssecseseseeneees 184 Specifying User Private Paths and Symbols Miscellaneous Tab 185 specifying External APIs External APIs Tab isiscosccscasisecsssecsaanscisess 186 Waa Updating a Project s Index isani i 186 10 55 Sharing Source Analysis Data with a Team erinrar 187 Ti BUIJINA Projelerini aaa aiae eiei 189 ILI Introduction sessverssernrevssssversvsseiernenrsdverenrvarsicentaraensesrersiansabeareesrersienesarenansiqaniinnceeee 189 11 2 Configuring Managed Bilde ssssicssi
228. esseseosessessesroseosessessoseeses 12 LG eee Denned Peers cirsio deli aS 12 152 Managed Proje eeuen eiaa eaaa 13 1 6 Debugging in User Mode or Kernel Mode cccsssssssssesesesssressssesesensssesssesenes 14 r Deer No IE aN EON 14 lo FKemel Meds ccs csiwukiunscn ances ia a 14 LZ What s New in Eclipse Related Changes ssssssssssssssessesesesssessssesessseseeeees 15 Aer Working win ON E acaies dentate kieneniemmnitae 15 172 Boling Source Tiles icin cenausnenwniimuennimauniguee 16 LZS Using the Outline View oosreenneriiineii iioi aiee T7 1 7 4 Source Analysis and Symbol Browsing ssssessesssssesrissressiesresreesresresses 17 Workbench Parser Is Now the CDT Indexer ssisuiramsiriisvsssisruirisa 17 Debug and Static Analysis Symbol Browsing Have Been Separated 18 lee miei oa Taree nsona 20 176 Working with Debugging VIEWS icdiiicccaiaiirnsniiapaaendsieianans 20 L77 Pot More Infotination assensu 25 18 Finding Related Documentation sssssonscsncesenssssnesnnssisounaiaas 25 13 1 Wind River Workbench Online Help ssssicrsisssisaeiinusasaiin 25 1 8 2 Wind River Workbench for Linux Documentation 0 0 0 0 25 PART Il GETTING STARTED 2 Introducing Application Development sssssnsssennnnnnnnnnnnnnnnnnnnnnnnnnnnn 31 21 Introduction sncssssssstissncascssnscacassessaasnienemrasonssssnsagnensaroscersneunasansasecastacesattatoniosenaaninaasy 31 2 2 Running Hello World in a Native Mode Linux Environment 0e00
229. et To add a build target that makes Run Time Analysis Tools and then makes the filesystem do the following 1 Double click Makefile wr in the platform project to open the makefile in the Editor 2 Add the following rule Run Time Analysis Tools make C DIST_DIR Run Time Analysis Tools make fs 3 Save Makefile wr 4 Right click the project and select New gt Build Target Enter the name Run Time Analysis Tools and click Finish A new Run Time Analysis Tools build target appears in your platform project To use the new build target right click the Run Time Analysis Tools build target and select Build Target Workbench builds Run Time Analysis Tools and then the filesystem 120 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems 5 5 Working with Packages and Target File Systems Wind River Linux Platform projects have a User Space Configuration node that allows you to Explore the target file system view the contributing packages and delete or add files to customize and fine tune the file system content Work with packages RPMs involving the target file system You can add remove import build and debug packages 5 5 1 Introducing the User Space Configuration Node The User Space Configuration node in the Project Explorer lets you handle packages as well as explore the target s file system To familiarize yourself with this node 1 Double click User S
230. et the information contained in it A 8 9 Target Server Back End Log This log records all requests sent to the WDB agent How to Enable Log Enable this log from the Remote Systems view by right clicking the target connection selecting Properties selecting the Target Server Options tab then clicking Edit Select the Logging tab then check the box next to Enable backend logging and provide a filename and maximum file size for the log Click OK Enable this log from the command line using the Bd path filename and Bm maximumFileSize options to the target server executable For more information about target server commands see Wind River Documentation gt References gt Host API and Command References gt Wind River Host Tools API Reference gt tgtsvr What is Logged Each WDB request sent to the agent For more information about WDB services see Wind River Documentation gt References gt Host API and Command References gt Wind River WDB Protocol API Reference What it Can Help Troubleshoot Debugger back end Target Server Target Agent Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it 361 Wind River Workbench User s Guide 3 0 Linux Version A 8 10 Target Server WTX Log This log records all requests sent to the target server How to Enable Log Enable this log from the Remote Systems view by righ
231. ew gt Project gt Example gt Native Sample Project gt Yacc Demonstration Program 2 Right click the yacc_example project folder then select New gt Build Target The New Build Target dialog appears In the Build target name field type pre_build 4 From the Build tool drop down list select User defined then click Finish to create the build target 5 Inthe Project Explorer right click pre_build and select Build Target This will use the makefile extension yacc makefile to compile the yacc source file to the corresponding C and header files The build output appears in the Build Console 198 11 Building Projects 11 5 Makefiles NOTE Execute this build step prior to the project build or the files generated by yacc will not be used by the managed build which generates the corresponding makefile before the build is started and before all files that are part of the project at this time are taken into account 6 When the build is finished right click the yacc_example folder and select Build Project Additional information on how you can extend the managed build is located in yacc makefile It makes use of the extensions provided in the makefile template wrmakefile which can also be adapted to specific needs General Approach To implement derived file support for your own project create a project specific makefile called name_of_your_choice makefile This file will automatically be used by the managed build an
232. f one task is suspended all processes and kernel tasks running on the system are suspended as well This allows for increased control of and visibility into what is happening on the system but it is also very disruptive For example if the system maintains network connections with other systems suspending it will cause the others to lose their network connections with the debugged system 18 2 5 Setting and Recognizing the Debug Mode of a Connection Right clicking a connection in the Remote Systems or the Debug views and selecting Target Mode allows you to specify a debug mode for the connection The currently active mode is indicated by a checkmark When you create a new debug connection through a launch the connection debug mode either system mode or task mode is saved as a property of the launch This mode is listed in parentheses at the end of the label of the target node in the Debug view For target connections that support switching between modes if you switch the debug mode while a debug connection is active this debug connection will become unavailable in the Debug view When a debug connection is unavailable no operations can be performed on it except for disconnecting the debug connection In the Remote Systems view if you switch the target to system mode every node in the tree will have a system mode icon painted on top If the system mode icon does not appear then the node and processes are in task or user mode
233. figuration for a Linux Kernel 2 6 Host The target kernel must support the USB device driver USB Ethernet gadget It may be installed as a module or it may be built into the kernel this is the default for Wind River Linux kernels Determining Driver Status To see if the USB Ethernet gadget is installed as a kernel module examine the Ismod command output To see if the gadget is built into your kernel search the dmesg output for something similar to the following usb0 Ethernet Gadget version Equinox 2004 usb0 using pxa27x_udc OUT ep30ut bulk IN ep2in bulk STATUS eplin int usb0 MAC 9a 8c 21 b0 9f 42 usb0O HOST MAC 26 06 24 43 81 a0 Your MAC and HOST MAC address will be different If Ismod shows the module installed or dmesg shows the gadget driver built in you can proceed to Configuring the USB Interface p 242 Adding Driver Support To add USB gadget driver support build it into the kernel or add it as a module with Device Drivers gt USB support gt USB Gadget Support gt Support for USB Gadgets using make linux xconfig or the Wind River platform s Kernel Configuration node To install the kernel module enter modprobe g ether Configuring the USB Interface With the kernel correctly configured and running configure the usb0 interface for example ifconfig usb0 10 0 0 150 where 10 0 0 150 is the IP address assigned to the target 242 14 Connecting with USB 14 3 Configuring a Host for USB C
234. files argument Specify a list of project files to be imported Separate the items in the list with commas For example dir1 project dir2 project All files must be specified using an absolute path 388 F Command line Importing of Projects F2 wrws_import Reference r recurse directory argument Specify a directory to recursively search for projects to be imported All files must be specified using an absolute path v define variables argument Specify a list of Eclipse path variables to be defined Separate the entries in the list with commas For example pathvar1 path1 pathvar2 path2 NOTE This script will not stop or fail if some projects already exist in the Workspace the way the Import existing projects into workspace wizard does It will just print out the information and continue 389 Wind River Workbench User s Guide 3 0 Linux Version 390 Starting usermode agent at Boot Time This appendix contains an example script for starting usermode agent when the Linux target system boots To do user mode debugging you must run the user mode agent on the Wind River target The agent becomes installed in the root file system by default but without this script or an equivalent you have to start it manually The following script Installs the user mode agent as an OS service and Enables automatic startup via the init mechanism when booting You may place this script in ete rc3 d in the target f
235. finition of methods showing included files in the Include Browser showing the call tree of functions and methods showing the type hierarchy of classes code completion in the editor hover information for function and method occurrences a tool tip showing the signature and comments of the related declaration or definition and so on Workbench uses the Eclipse Fast C C Indexer per default You can however switch off source analysis for any project by selecting the No Indexer option on the indexer property page For more information about the Indexer see the C C Development User Guide under Help gt Help Contents 10 5 1 Setting Indexer Preferences You can set basic indexer preferences such as whether to index a project or to index all files in a project on either a global workspace or per project basis Global Workspace Preferences To set global workspace indexer preferences 1 Select Window gt Preferences gt C C gt Indexer to open the preferences dialog 2 Select Index all files if you want to parse all source and header files By default the only files indexed are those added to a managed project s build target or for user defined projects those included by enabling build output analysis Select No Indexer in the drop down if you want no files to be parsed 4 Set Indexing strategy to after every file change if you do not want the index upated automatically 5 Accept the Cache limits as spe
236. for instance that you have rebuilt the host executable but you have forgotten to update the executable running on the target The target executable must have the same sections but it need not have any debug information if for example the target has limited resources 275 Wind River Workbench User s Guide 3 0 Linux Version 17 5 Controlling Multiple Launches Terminology You can create a Launch Control launch consisting of a sequence of your launch configurations each one of which is then considered a sub launch You can even add other Launch Control launches to a Launch Control configuration the only restriction being that a Launch Control configuration cannot contain itself For detailed information on launch control settings see the Wind River Workbench User Interface Reference Launch Configuration Dialog A launch is a specific instance of a launch configuration and a launch configuration is a specific instance of a launch type The launch is what occurs when you initiate a run or debug session A launch configuration is your definition of how the launch will occur for example what program will be run what target it will run on and what the arguments are A launch type defines the kind of launches that are supported by Workbench There are several different kinds of launch types for example Java Application Process on Target and Launch Control The launch type includes GUI elements that specify attributes
237. for our example this is the local Linux host a Inthe Remote Systems view on the lower left select WRLinuxHost_username b Click the green connection button in the Remote Systems toolbar to open a default output window The connection button looks like an N with round ends The usermode agent window opens In the Remote Systems view right click WRLinuxHost_username and select Debug gt Debug Process on Target In the Main tab of the Debug dialog click the Connect button if WRLinuxHost_username is not connected It should be connected and the button should be grayed out In the Main tab find the text box labeled Exec Path on Target If there is no exec path browse to the workspace location of the hello_world executable select hello_world and click OK 33 Copyright 2005 Wind River Systems Inc include lt stdio h gt T int main int argc char argv Wind River Workbench User s Guide 3 0 Linux Version The location is workspace hello_world_Native Linux gnu native 3 x hello_world_Native Debug hello_world_Native or a similar path depending on your configuration Click Debug in the lower right corner of the Debug dialog The process executes until it comes to the main routine in the program Workbench s Device Debug perspective shows the Debug view in the upper right The editor displays the source file and other views show typical debugging operations B creation log
238. g New Plug ins into Workbench Many developers who download plug ins prefer to create a new directory for each one rather than unzipping the files directly into their Workbench installation directory There are many advantages to this approach The default Workbench installation does not change You do not lose any of your plug ins if you update or reinstall Workbench Plug ins do not overwrite each other s files You know which files to replace when an update to the plug in is available 20 3 1 Creating a Plug in Directory Structure To make your plug ins easier to manage create a directory structure for them outside your Workbench installation directory 1 316 Create a directory to hold your plug ins It can have any descriptive name you want for example eclipseplugins Inside this directory create a directory for each plug in you want to install These directories can also have any descriptive name you want for example clearcase 20 Integrating Plug ins 20 3 Incorporating New Plug ins into Workbench NOTE Before continuing download the plug in s zip or other archive file and look at its contents Some plug ins provide the eclipse directory structure and the eclipseextension file for you others do not If the destination path for the files begins with eclipse and you see an eclipseextension file in the list you may skip the rest of this section and extract the plug in s files into the directory you crea
239. g by Wind River support A maximum size can be specified for each of these files If so files are rewritten from the beginning when the maximum size is reached If the file initially exists it is deleted This means that if the target server restarts for example due to a reboot the log file will be reset For the WTX Wind River Tool Exchange log file you can specify a filter a regular expression that limits the type of information logged In the absence of a filter the log captures all WTX communication between host and target Use this option in consultation with Customer Support Command Line This will be filled in based on the values you enter in this dialog box 13 5 1 Target Operating System Settings Clicking Next opens the Target Operating System Settings dialog box Kernel mode only Select the correct version of the Linux operating system and specify 233 Wind River Workbench User s Guide 3 0 Linux Version the path to the kernel symbol file for example home wbuser WindRiver workspace new_prj export vmlinux symbols 13 5 2 Object Path Mappings Clicking Next will open the Object Path Mappings dialog box Kernel mode Workbench uses Object Path Mappings in two ways They allow the debugger to find symbol files for processes created on the target by creating a correspondence between a path on the target and the appropriate path on the host Workbench also uses object path mappings to calculate t
240. g on your Linux host if it is not already running NOTE You must have the full kernel built in your project or else the infrastructure for building kernel modules will not be in place 2 Right click the kernel_build build target and select Build Target The kernel will take about 10 to 20 minutes to build 3 Select File gt New gt Example from the menu bar 101 Wind River Workbench User s Guide 3 0 Linux Version Select Wind River Linux Kernel Module Sample Project then click Next Select The Kernel Module Debug 2 6 Demonstration and click Finish A new project called moduledebug_2_6 appears in the Project Explorer Select a platform project Select Project gt Properties gt Project References b Check the box for moduledebug_2_6 c Click OK The moduledebug_2_6 project disappears from the Project Explorer and appears inside the platform project Open the Platform project and find the sub project moduledebug_2_6 Right click the sub project moduledebug_2_6 then select Build Project The module moduleDebugExample ko appears in the directory of the moduledebug_2_6 project If you do not see it under the project icon right click the project and select Refresh Remember for the kernel module to build the Linux kernel must be already built by building the kernel_build build target in the platform project Right click on the moduledebug_2_6 sub project and select Properties gt Build Properties
241. g view 21 4 Using CDT and Workbench in an Eclipse Environment The following tips will help you understand how to use Eclipse C C Development Tooling CDT and Workbench together in the same Eclipse environment NOTE When starting Eclipse after registering Workbench you will see three errors in the Error Log These errors are not a problem They appear because Workbench ships some CDT plug ins that are already on your system and Eclipse is reporting that the new ones will not be installed over the existing ones 325 Wind River Workbench User s Guide 3 0 Linux Version 21 4 1 Workflow in the Project Explorer Some menus and actions are slightly different when using CDT and Workbench together Application Development Perspective Workbench CDT projects appear in this perspective along with Workbench projects Building CDT Projects The context menu of the Project Explorer contains entries for Build Project and Rebuild Project but the Rebuild Project entry executes a normal build for CDT projects The Clean Project entry is missing for CDT projects Running Native Applications The Run Native Application menu is enabled for CDT projects When executed it creates a Workbench Native Application launch with correct parameters Because Workbench Native Application launches do not support debugging to debug your application you must create a CDT Local C C Application launch from the Run gt Run As menu Sel
242. gdboe Wind River Linux provides a utility that can convert TCP connections on an intranet to UDP connections in a subnet If a host is available that sits on both the intranet and the subnet the utility agent proxy can provide this required access The agent proxy is in the host tools bin directory which you would copy to the bridging host 89 Wind River Workbench User s Guide 3 0 Linux Version Example instructions for using agent proxy 1 Log into the bridging host In this example the bridging host has one Ethernet connection on the intranet 147 11 200 11 and a second Ethernet connection on the target s subnet 192 168 29 11 See Figure 4 2 Figure 4 2 Using agent proxy to Bridge Subnets Intranet Subnet 192 168 99 m ETHO 147 11 200 11 m Workbench From TCP Port 3333 Target Kernel agent proxy IP 147 11 100 77 To 192 168 99 123 D IP 192 168 99 123 UDP Port 6443 UDP Port 6443 kgdboe ETH1 192 168 99 11 _ Development Host Target Bridging Host 2 Start a copy of agent proxy This will connect the TCP port 3333 to the UDP port 6443 from 192 168 99 123 agent proxy 3333 192 168 99 123 udp 6443 3 Log into the target 192 168 99 123 and enter this command This will start the kgdboe agent connected to the bridging host root target gt modprobe kgdboe kgdboe 192 16
243. guration option If you prefer you can still use the menuconfig or xconfig interface either from the command line or by clicking the menuconfig or xconfig nodes in the platform project 5 2 1 Kernel Configuration Node When you double click Kernel Configuration in the project folder a tab with the name of your project opens in the central view displaying a configuration window with two tabs Overview and Configuration Overview Tab The Overview tab displays the project configuration This corresponds to the choices you made when creating a new Wind River Linux Platform project The command line arguments supplied to the configure command to create the initial configuration are shown at the bottom of the view Configuration Tab The Configuration tab consists of two windows The top window presents the items for configuration that may be familiar to you from using menuconfig or xconfig to configure kernels The lower window consists of three tabs Help Dependencies and Kconfig that provide additional information on the items you select in the top window NOTE By moving your cursor around inside the Kernel Configuration view you can find the drag points to enlarge view sections When you select an item in the top window Help appears in the Help tab Select the Dependencies tab to see any items your selected item depends on or items that depend on it Double click any item dependency to move to it in the top 116 5 Configuri
244. h needs the registry to detect and launch target servers If Workbench does not detect a running default registry at start up it launches one After quitting the registry is kept running in case it is needed by other tools 13 6 1 Launching the Registry To launch the default registry open the Target menu or right click in the Remote Systems view and select Launch Default Registry NOTE These menu items are only available if the registry is not running and the default registry host is identical to the local host 237 Wind River Workbench User s Guide 3 0 Linux Version The registry stores its internal data in the file installDir wind wtxregd hostname If this file is not writable on launch the registry attempts to write to var tmp wtxregd hostname instead If this file is also not writable the registry cannot start and an error message appears 13 6 2 Remote Registries If you have multiple target boards being used by multiple users it makes sense to maintain connection data in a central place the remote registry that is accessible to everybody on the team This saves everyone from having to remember communications parameters such as IP addresses and other settings for every board that they might need to use You might want to create a new master registry on a networked remote host that is accessible to everybody To do so 1 Workbench needs to be installed and the registry needs to be running on the remote hos
245. h uses projects as logical containers They are also building blocks that can be linked together to create a software system For example the Project Explorer lets you visually organize projects into structures that reflect their inner dependencies and therefore the order in which they are compiled and linked Pre configured templates for various project types let you create or import projects using simple wizards that need only minimal input 143 Wind River Workbench User s Guide 3 0 Linux Version 6 2 Workspace and Project Location By default your workspace directory is created within your Workbench installation directory New projects are created in a subdirectory of the workspace directory named with the project name For Wind River Platform projects an additional subdirectory named with the project name and a _prj extension is created see 3 3 3 Understanding What Else You Can Build p 58 Wind River Workbench cannot know where your source files are located so it initially suggests a default workspace directory within the installation directory However this is not a requirement or even necessarily desirable If you use a workspace directory outside of the Workbench installation tree you can preserve the integrity of your projects after product upgrades or installation modifications Normally you would set your workspace directory at the root of your existing source code tree and create your Workbench projects there For
246. he nightly update to the specified list of projects Needed closed projects will be opened and unneeded opened ones closed After finishing the update the previous state is restored Separate the list with for example cobble helloWorld If the build target of a managed build project depends on files folders or sub targets from other projects in the workspace they must be included in the list of projects For example a project named ManagedBuildProj references build targets from a subproject DependProj1 and source files from another project DependProj2 flexible managed build only Therefore they must be included in the list of projects as shown here on Windows wrws_update data C build 1 DependProj1 DependProj2 ManagedBuildProj m 384 E Command line Updating of Workspaces Build Options b build projects argument Launch build for projects Several strings are valid as arguments including build default clean and rebuild All open projects in the workspace are built in the correct build order It is not required to specify a list of projects using the l option e enableTraceBuild Enable trace build output f debugMode argument Build using specific debug or non debug mode where applicable The argument if specified can be 0 or 1 otherwise the current mode is used per project u buildArgs argument Specify a list of additional build options Separate the list with for example MY_VAR
247. he last of the reserved port numbers 6 Click Debug Workbench changes to the Debug perspective and the Debug view shows the status of the launch If you checked Stop in main in the Main tab of the launch configuration you should see the application suspended at main The source file should also be open in an Editor window with the location where execution has been suspended highlighted At this point you can examine variables set breakpoints step through your application and so on Output and standard error output will appear in the Console view which is discussed in 17 6 Launches and the Console View p 281 Click the Resume icon in the Debug view toolbar to continue program execution 17 4 Launching Programs Manually Once a launch configuration has been established you can run programs using the Run or Target selections on the menu bar or using the Run and Debug buttons on the toolbar Workbench will automatically try to connect to the target if a connection is not already running Workbench checks the executable file running as a Linux process on the target against the host counterpart present on the host and accessible by the host s debugger server These executables may be the same if both the target and the host have access to the same file system But they can differ too Workbench pops up a warning if it finds differences in their section sizes such as in the text bss and data sections This might warn you
248. he target by right clicking it choosing Run Process on Target or Debug Process on Target and then clicking Run or Debug in the lower right of the Create Manage and Run Configurations screen See 3 9 Debugging an Application on the Target p 72 3 1 2 Exploring Targets and Making Easier Connections Once you have the connection to the target you can use what you have created or configured at this point to 1 Use the Remote System Explorer to browse a remote target s file system browse your host s target system copy files from directory to directory within the target and issue remote shell commands to your target See 3 7 Using the Remote System Explorer p 67 2 Modify and use the default launch configuration as a one step process to connect to your target and launch your application to run or debug it See 3 8 Using the One Step Launch Configuration p 69 3 1 3 Debugging Applications Now that you can connect to the target and launch your application on it so you can debug it you can use the debugging section of this chapter to Recognize the parts of the Workbench debugging environment 3 9 1 The Workbench Debugging Environment p 72 Runa program on a target until it reaches the first breakpoint 3 9 2 Running on the Target up to a Breakpoint p 73 Use the device debug perspective 3 9 3 Using the Device Debug Perspective p 74 Step through code and examine memory 3 9 4 Stepping Through Code p 76 Se
249. hey can be displayed in real time using the color features of the Workbench Data Monitor GUI The RKM monitor acquires its data from the proc filesystem on the target If you do not have a proc filesystem on your target you may simply need to mount it or you may need to rebuild your kernel to include it To mount the proc filesystem use the mount command as follows mount t proc proc proc If your kernel does not have proc support built in you must re build and enable it in the File system configuration section of your kernel configuration tool Building and Running the RKM Monitor The RKM monitor agent source code is supplied in a Workbench sample project To build the RKM monitor and then run it on your Linux target NOTE The following procedure assumes the results of your project build are available on the target for example by locating your workspace on a shared NFS mount It also assumes you have created a connection to the target in the Remote Systems view and have specified the target host root filesystem mapping 1 Start Workbench 2 Select File gt New gt Example gt Native Sample Project Click Next 3 Select The RKM Remote Kernel Metrics Monitor Program and click Finish 4 In the Project Explorer right click the rkm_monitor_linux folder and select Build Project 5 Right click the folder again select Run As gt Open Run Dialog then right click Process on Target and choose New 6 Inthe Mai
250. ht click the module and select Load Symbols You can now single step into the initialization routine of the kernel module To resume processing remove the breakpoint and click the Resume icon in the Debug view The insmod command completes You can remove the module from the kernel with the rmmod command kgdb _target_ rmmod moduleDebugExample ko When you remove the module notice that moduleDebugExample ko is no longer registered in the Remote Systems view 105 Wind River Workbench User s Guide 3 0 Linux Version 4 6 4 Placing Breakpoints in Modules Not Yet Loaded When a kernel module is loaded it tries to load the symbol table and place any pending breakpoints To use this as a fast way to break in the init routine of a kernel module 1 2 3 4 5 D 10 11 106 Right click the GDB target connection entry in the Remote Systems view Select Properties gt Object Path Mapping Click Add Leave the Target Path empty Click Browse for the Host Path and select workspacedir moduledebug_2_6 for the directory where the generated moduleDebugExample ko file is found Click OK for the path and OK for the connection s properties dialog Make the connection to the target If that connection is already active disconnect and reconnect to assert the new mappings Click Resume so that the target is running Right click in the left gutter of the bpHere c or modules c source file at the location indica
251. ht click the hello_world project and select Build Project The build is performed on the remote Linux host Run the Application on the Remote Host 1 Right click the executable or the DEBUG directory and select Run Native Application click the Remote Settings tab In this example we are not assuming that the Windows host is running an X server so delete the string xterm e Application in the section under Remote Program so that it is empty If you do not have a Console view in your current Workbench window select Window gt Show View gt Console You may want to move it to a place where it is always visible if it is not already Click Run Build ouput appears in the Build Console view and after a few moments the program output hello world appears in the Console view This output has come from the execution of the program on the remote Linux host Debug the Application on the Remote Host 1 Click the Create a New Target Connection icon in the Remote Systems view If you already have a target connection that you want to use be sure the object path mappings and source path lookup are set correctly as described in this procedure Select the user mode connection type and click Next Ignore the usermode agent options screen and click Next Enter the remote Linux host name or its IP address and click Check to verify it Click Next Specify your object file path mappings by associating the path to the workspace on the remote Lin
252. hysical manipulations For example if you hold down CTRL while you 166 9 Working in the Project Explorer 9 6 Moving Copying and Deleting Resources and Nodes drag and drop a source file from one project to another you will create a physical copy and editing one copy will have no effect on the other 9 6 3 Manipulating Project Nodes Although copying moving or deleting project nodes are undertaken with the same commands you would use for normal files the results are somewhat different because a project folder is a semi logical entity That is a project is a normal resource in the root position A project that is referenced as a subnode is however a logical entity it is a reference only not a physical instance Moving and Un Referencing Project Nodes If you select a project folder node and right click Move you will be asked to enter browse for a new file system location All the files associated with the current project will then be physically moved to the location you select without any visible change in the Project Explorer you can verify the new location in the Project Properties When you use right click a project node and choose Add as Reference or if you have selected a subproject right click and choose Remove Reference a dialog opens to allow you to place the currently selected project reference into other projects as a subproject or if you are using Remove Reference to remove the currently selected projec
253. ick Next The Edit Content dialog appears 3 To display files folders and other build targets from outside your current project select Show all projects If you have created a Working Set you can restrict the display by selecting it from the pull down list 4 You can add contents to your build target in several ways a You can select specific files folders projects or other build targets in the left column and click Add What you can add depends on the build tool you use for example you cannot add an executable build target to another build target When choosing folders or projects they can be added flat or with recursive content Clicking Add creates a flat structure meaning that Workbench adds the exact items you choose and skips any subfolders and files Clicking Add Recursive creates a structure that includes subfolders and files 191 Wind River Workbench User s Guide 3 0 Linux Version NOTE Adding linked resources to a build target may cause problems within a team if the linked resources are added using an absolute path instead of a variable To define a path variable select Window gt Preferences gt General gt Workspace gt Linked Resources click New then enter a variable name and location b You can create a virtual folder within your build target by clicking Add Virtual Folder typing a descriptive name in the dialog and clicking OK Virtual folders allow you to group
254. ield select common_pc glibc_std i686 Click Finish 4 Inthe Project Explorer click the arrow to the left of the ball folder to expand it to see what it includes Project Explor 3 X File Navigator 7 O B y Y ball Wind River Linux Platform 2 0 App v M Build Targets common_pc glibc_std Y F ball ball out W ball recursive 2 3 3 Importing Existing Source Files In the following procedure you import source files into your new project 1 To import the existing source files of the ball program right click the ball folder you created in the previous procedure then select Import 2 Inthe Import dialog box select General gt File System then click Next 3 For the From Directory field click Browse then browse to installDir workbench 3 0 samples ball and click OK 38 2 Introducing Application Development 2 3 Creating a Cross Debug Mode Project 4 Inthe File system dialog box select the check box next to the ball folder The four files in that folder are now pre selected in the right pane and the Into folder field includes ball 5 Click Finish The four new files are now included in the project in the Project Explorer ball Wind River Linux Platform 2 0 App v ae Build Targets Ccommon_pc glibc_std gt ball ball out R ball h grid c Le main c E sample txt 2 3 4 Importing Build Specs To add new build specs without impacting any existing build
255. ifes cycle Eve 13 6 The Registry izci Launching the Regie scien daiemioiniaomnaninnnmnons 13 6 2 Remote Registries ee ee ee er eee 1363 Shutting Down the Resi y ccsaicsinaisscssmnssaerscmeasainnanatroreianiavns 13 64 Changing the Default Registiy scsiciunsnseincrinoneiseindnnoiianmasnincnsten Connecting with USB cc sssssssscsssssesenensesssazecssssassersosseaseaseas iLi 3 Fitrodactioit ssceccixcccsiadnctnnninciaemnunnnnmnaiunanadmannaemiens 14 2 Configuring a Target for USB Connection sssssssscsssecnsecnecenseeneeeneecnnscnneess get Configuration for Target Configuration for a 14 3 Configuring a Host for USB Connection csssscsssseessseesesseneeseeees Linux 2 6 Host Configuration oniiir aae i Windows Host Conbigurahon saamises Con necti ng with TI PC Pree 351 TE ssc ccna ses asda EA 15 2 Configuring TIPC Targets 15 21 Tnetalling the TIPC Kernel Witte issiis oscncctansinticnssncenczserniansonesencrehinha 1522 Ruming the ssid ai inicamonennscmimnnammmianians 15 3 Configuring a TIPC Proxy s s s Linux Kernel 2 6 Host ou indows HOSE svesssescvavecentssrvavens 235 235 as 236 237 238 239 239 241 242 ww 242 243 243 244 245 245 247 247 15 4 15 5 Wind River Workbench User s Guide 3 0 Linux Version Configuring Your Workbench Host cscscssssssssssssssesesessssesesssssesessssseseseeseseees 250
256. iiasenas 359 A 8 7 Debugger Views Broadcast Message Debug Tracing Log 000 359 ASS Tametb rrer Oat LOR iicccuinarianccancuaasdennmecennncees 360 ASI Target Seryer Back End Log snoras 361 ASIO Tager ocer WTA LOT ccc ccccnipcnatennacnsnan eatin 362 A 8 11 Remote Systems View Debug Tracing Log icssececsesirieissonencserinnsaenonen 362 AD Technical Support ersicsrineunneaidu a AN 363 B Workbench and Command Line Techniques ss eecesseseeeeeeeees 365 Workbench and the Command Shell Environment s ss sssssssssessesee 365 Setting the Environment Without Starting a Sub shell c0 368 Cc Installing On Network Servers ccccseeeceesseeeeeeeeseeeeeseeeeeesseneeeenees 371 Shared Wind River Linux Installation 1 scsciccsinissspevescseomicnovarveses 372 Local Workbench Installation ssussoressseionsssyeniniesnanunorss 373 D Configuring a Wind River Proxy Host cccseseeeeseeeeeeeeseneeneeeeeees 375 DOLD Ta a E E A E N E N 375 D 2 Configuring WIproOxy secccssversnssecsancsvcccenorsersrarssrenennsrnasiseavsiversnsseeaineamranverspsinnnraenes 377 xxii G H Contents Configuring wiproxy Manyally sicecccueissnsaimacinarsiinanindasoconsrininineunieeshavn OA Creating a wrproxy Configuration Script nessuno 378 D 3 wrproxy Command Summary 0 Koh nino eT Inivccation Commands lt ccciiauiseaiontiommenidedinninwame OFO CORT Ua Or Cea AAS sni R OPO Command line Updating of Works
257. ild Properties Change the Build command to make COPTIMIZE 00 that is a dash a capital letter O and a zero When you next build the module it will have no or to be exact minimum optimization 344 A Troubleshooting A 5 Hints about Performance and Breakpoints Module Optimization Levels and Skipped Breakpoints Sometimes you may find behavior like a step next that does not break on the next step In this example the compiler when optimizing the code may in fact create two in line copies where the break point gets set in the first copy but the code may branch into the second copy This is a limitation of some ELF formats and a resulting optimization and context awareness issue for the debugger You can try switching to mixed assembly and source stepping where you step the actual assembly instructions but the best choice is again to remove the optimization for the module and retest Manual Refresh of the Build Linked Directory in Workbench To help the workflow Workbench has disabled the automatic project refresh after builds so that the user can immediately choose the next task The consequence is that you need to manually refresh the build directory whenever you wish to see any new or revised file within or else the file may not be visible or the existing file handle in the Project Explorer might be stale Previously platform projects included a link to the project s build directory allowing the user to browse
258. ild spec for the project the arch2 subfolder will be built but the arch1 subfolder will not Vv Arch specific recursive v arch disabled for arm_versatile_926ejs c arch1 c disabled for arm_versatile_926 v Garch2 arch2 c main c 209 Wind River Workbench User s Guide 3 0 Linux Version 12 6 User Defined Build Targets in the Project Explorer In the Project Explorer you can create custom build targets that reflect rules in makefiles This is especially useful if you have User Defined projects which are projects for which Workbench does not manage the build You might also find this feature useful in other projects as well 12 6 1 Custom Build Targets in User Defined Projects You can define a custom build target for a rule or rules in your Makefile To do so 1 Right click a project or folder and select New gt Build Target 2 Inthe dialog box that appears enter the rule s you want to create a target for If you want to execute multiple rules separate each one with a space The names of the rule s you enter must exist in your makefile s to be executed when you build your new user defined target Set the Build tool to User defined 4 Click Finish The new build target node appears under the project or folder you selected The node icon has a superimposed M to identify it as a user defined make rule To execute the rule s right click the new target node and select Build Target 12 6 2
259. ile system bin sh usermode agent This script takes care of starting and stopping UMA prog usermode agent start Attach usermode agent device echo n Starting prog echo usr bin usermode agent v bin sh c usr bin usermode agent v gt tmp usermode agent version 2 gt amp 1 amp bin sh c usr bin usermode agent V gt tmp usermode agent log 2 gt amp 1 amp echo OK touch var lock subsys usermode agent echo 391 Wind River Workbench User s Guide 3 0 Linux Version stop Stop service echo n Shutting down Sprog killproc usermode agent rm f var lock subsys usermode agent echo See how we were called case 1 in start start stop stop restart reload stop start condrestart e var lock subsys usermode agent amp amp stop start 3 echo Usage 0 start stop restart reload condrestart exit 1 esac exit 0 392 Glossary This glossary contains terms used in Wind River Workbench For basic Eclipse terms see the Eclipse glossary If the term you want is not listed in one of these glossaries you can search for it throughout all online documentation 1 At the top of the Help gt Help Contents window type your term into the Search field 2 Click Go Topics containing the term will appear in the Search Results list 3 To open a topic in the list click it For more information about online help see Hel
260. in your workspace one with the project name project and one with the project name plus a _prj extension project_pri NOTE If you are importing an existing platform project its location is used and a project_prj folder will not be created At this point your project_prj export directory contains three empty subdirectories dist packages and RPMS You can now build the kernel file system and other targets as described next Before building your target you could also Reconfigure kernel parameters as described in 5 2 Configuring Wind River Linux Platform Kernels p 116 Add or remove RPMs from the file system as described in 5 5 Working with Packages and Target File Systems p 121 For the purposes of this tutorial just continue with the next section 56 3 Creating and Debugging Platform Projects 3 3 Building the Target s File System and Kernel 3 3 Building the Target s File System and Kernel Your platform project needs to provide a file system and kernel for the target 3 3 1 Building the File System To build the file system 1 Right click fs within the Project Explorer and choose Build Target 2 Look in the Build Console for reports on the build progress The build might take many minutes 3 Look toward the very end of the creation log window in the center of Workbench for a summary of what you have built To see what you have built in more detail 1 Open a terminal window 2 Change directory
261. ing connecting a target running and possibly attaching a debugger You can rerun your previous launches at any time by clicking a single button 265 Wind River Workbench User s Guide 3 0 Linux Version This chapter explains how to edit and fine tune your launch configurations to provide a tight edit compile debug cycle as well as how to manually attach the debugger to tasks and processes See 3 8 1 Accepting the Automatic Debug Launch Configuration p 69 for automatic launch configuration support 17 2 Creating a Launch Configuration A launch configuration is similar to a macro because it allows you to group together the actions required to start a program Then with a single click you can connect to your target start your process and if you wish attach the debugger Your configurations are stored persistently and can be shared with your team Launch configurations can be run in one of two modes Run mode connects to your target then launches a process Debug mode is like run mode but it automatically attaches the Wind River debugger after completing all other actions The same launch configuration can be executed in either mode To create a launch configuration 1 Select Run gt Run or Run gt Debug The Create manage and run configurations dialog box appears 1 From the Configurations list select the type of configuration you want to create Attach to Target or Process on Target explained below Click
262. inux Version 4 4 Connecting with KGDB from Workbench ssessssssesssessesesessesseesessesseessesseoseesse 95 44 1 Option 1 Making an Ethernet Connection sssssasuiiissiiinieis 95 442 Option 2 Making a Telnet Connection siscncssdcnsiontesrccnunaiseninencacives 97 443 Option 3 Making a Serial Cable Connection sssssoisrsriessnnsiniiss 98 444 When a KGDB Connection Fails cxcccsicississccncnincnsnissonansrensrsnaninuoienancainiices 98 4 5 Attaching and Debugging the Kernel from Workbench 45 1 If the Compilation Unit Source Is Not Found 0 4 5 2 Ifthe Target s Terminal Window Is Stopped susrisusaiiisonisisinsiss 100 4 5 3 Setting and Removing a Sample Breakpoint cccssseseeseeeseeeeesees 100 4 6 Debugging User Supplied Kernel Modules sssssssesessssssessenesesssseseeneees 101 4 6 1 Building the Sample User Supplied Kernel Module cccseee 101 4 6 2 Debugging a Running User Supplied Kernel Module c00000 102 4 6 3 Stepping into User Supplied Kernel Module init from module c 104 4 64 Placing Breakpoints in Modules Not Yet Loaded 0 cece 106 4 6 5 Providing Object Path Mappings to All Modules ccccseeeeee 107 4 6 6 Using the testmod Enhanced Sample Kernel Module 1s000 108 io Creating a Custom Kernel Module acinwiioamurniniearaswnies 109 4 7 Using QEMU for KGDB Kernel Debugging cssseeseseesessseseesessnenseees 110 4 8 Enabling and Disabling KGDB in the Kernel
263. ion A run mode launch configuration is a set of instructions that instructs the IDE to connect to your target and launch a process or application A debug mode launch configuration completes these actions and then attaches the debugger managed build A build for which Workbench controls all phases available for all project types except user defined projects native mode development environment A development environment requiring a usermode agent program to be running on the target in a Linux operating system In this environment the debugger and application are compiled with the same toolchain thus no emulator is required when running in self hosted mode A native mode development environment can only be used for application development object path mappings The object path mappings specify where the debuggable objects are to be found for both the debugger running on the host and the Linux target In Workbench this is set within the Remote Systems view s Target Connection Properties overview ruler The vertical borders on each side of the Editor view Breakpoints bookmarks and other indicators appear in the overview ruler parameter hinting See hover info 397 Wind River Workbench User s Guide 3 0 Linux Version perspective A perspective is a group of views and Editors in the Workbench window One or more perspectives can exist in a single Workbench window Each perspective contains one or more views
264. ion eliminates the need to create symbolic links to your external files before you can work with them in Workbench 6 3 Creating New Projects Although you can create projects anywhere you would generally create them in your workspace directory see 6 2 Workspace and Project Location p 144 If you follow this recommendation there will generally be no need to navigate out of the workspace when you create projects Note that if you do create projects outside the workspace you must have write permission at the external location because Workbench project administration files are written to this location To create a new project you can use any of the following options Click the New toolbar icon Select File gt New gt Wind River Workbench Project to open the New Wind River Workbench Project wizard to help you create one of the pre configured project types Click the 4 toolbar icon Select File gt New gt ProjectType For more information about projects types see Overview of Preconfigured Project Types p 146 To create one of the demonstration sample projects select File gt New gt Example to open the New Example wizard Each comes with instructions explaining the behavior of the program 145 Wind River Workbench User s Guide 3 0 Linux Version Whichever menu command you choose a wizard will guide you through the process of creating the specific type of project you select 6 3 1 Subsequent Modification
265. ionality refer to your ClearCase product documentation 319 Wind River Workbench User s Guide 3 0 Linux Version 20 4 Disabling Plug in Functionality You can disable plug in functionality without uninstalling the downloaded files This gives you the opportunity to re enable them at a later time if you want 1 To disable a plug in select Help gt Software Updates gt Manage Configuration The Product Configuration dialog appears 2 Inthe left column open the folder of the plug in you want to uninstall select the plug in itself then click Disable 3 Workbench will ask if you want to restart To properly disable the plug in s functionality click Yes 20 5 Managing Multiple Plug in Configurations If you have many plug ins installed you may find it useful to create different configurations that include or exclude specific plug ins When you make a plug in available to Workbench its extension location is stored in the Eclipse configuration area When starting Workbench you can specify which configuration you want to start by using the configuration path option where path represents your Eclipse configuration directory On Windows From a shell type ed installdir workbench 3 x wrwb platform eclipse x86 win32 bin wrwb exe configuration path On Linux and Solaris Use the option as a parameter to the startWorkbench sh script startWorkbench sh configuration path amp For more informati
266. irectory where the shared configuration is located 2 If you want to be able to access this launch configuration from the Debug favorites menu the drop down list next to the bug button on the Workbench toolbar select Debug in the Display in favorites menu box 3 If you want the process to launch in the background ensure that box is checked 4 Click Apply to save your settings but leave the dialog box open click Close to save your launch configuration for later use or click Debug to launch it now 270 17 Launching Programs 17 2 Creating a Launch Configuration 17 2 8 Using Launch Configurations to Run Programs Figure 17 1 In a typical development scenario you will run the same application many times in a single debugging session After creating a launch configuration you can click the Debug button to run a process and attach the debugger in a few seconds To launch a recently run process 1 Click the pull down arrow next to the Debug button and select the process from the configuration list Figure 17 1 Debug Launch List OvrQ e8BevsiaF N lt 1 Pentium4 tgt_147_11_36_202 1 h 2 project_3 3 3 Pentium4 tgt_147_11_36_202 4 d Debug As gt Debug 1 Organize Favorites If you ran the configuration recently it will appear on the menu If you selected Debug from the Display in favorites menu list see The Common Tab p 270 for a configuration it will always appear on the list wheth
267. is should be a unique number less than 65536 not used as a port by any other application and it should be greater than 1024 which is the last of the reserved port numbers A simple example of using the create command to configure a Telnet server port connection is given in D 2 Configuring wrproxy p 377 Delete the proxy configuration for a specific port Usage delete pport port_number To delete the proxy configuration of a specific port use the delete command with the port number for example telnet localhost 1234 Trying 127 0 0 1 Connected to localhost Escape character is delete pport 1235 ok telnet gt q Connection closed List your current configuration with the list command Usage list For example to list your current configuration connect to the proxy control port and enter the list command telnet localhost 1234 Trying 127 0 0 1 Connected to localhost Escape character is list ok pport 1235 type tcpsock port 23 tgt my_ target 382 Command line Updating of Workspaces The Workbench installation includes a wrws_update script that allows you to update workspaces from the command line This can be used for example to update workspaces in a nightly build script The following section provides a reference page for the command A script for updating an existing workspace is available in the Workbench installation and is named wrws_update bat Windows only wrws_update sh
268. is the need to mount the Windows disk on the build host This may lead to problems regarding permissions and performance so a mapping of the workspace root directory is definitely needed Local UNIX Remote UNIX As it is possible to access the workspace root directory on both machines with the equivalent path automount it may be possible to skip the path mapping Local UNIX Remote Windows This scenario is not supported as you would need to execute the build command on Windows from a UNIX host 12 7 3 Setting Up a Remote Environment The Edit remote command script button in the Remote Connections dialog box Project gt Build Options gt Remote Connection lets you include additional commands and environment variables to set up your environment on the remote machine prior to a build or run This button opens remote_cmd sh for editing The following version as an example has been edited as indicated by bold font to update the PATH variable bin sh WORKSPACE ROOT WorkspaceRoot export WORKSPACE_ROOT DISPLAY Display export DISPLAY PATH MyTools gmake_special bin PATH 214 12 Building Use Cases 12 7 Developing on Remote Hosts export PATH translate CR to NL for better build output handling stty ocrnl 1 gt dev null 2 gt amp 1 cd SWORKSPACE ROOT cd gi shift 1 exec S You can add any commands you need but all commands must be in sh shell style 12 7 4 Building Projects Remotely 1
269. iseiisivisessscsrsicicasitosisoveis a 298 Using the Disassembly View i ccccccscssorsssssssessssisnsssosesenensisacnsosesenenessssionsesenenensase 301 184 1 Opening the Disassembly VIEW saccminnimimniconnnnusamorenriniin 301 18 4 2 Understanding the Disassembly View Display cssceeeeeeeen 301 Java JNI Cooperative Debugging ccsscssesscssssssssssesscsesesesssesesessseseeseseees 302 Configuring a User Mode Connection for Cooperative Debugging 302 Creating a Launch Configuration for Cooperative Debugging 303 Debugeing In Java and Native Modes sists csesicccsassacscieressccargurncoecss 304 Conditions that Disable the JDT Debugger ssorocseriiispieniiriniasi 305 Re Enabling the JOT Debugger mocresmuisiniiienosaiikii ikii 305 Remote Kernel Metrics sccssicsnisesnimosiscesvevervannersnnetneteonesinnnvutesvesisesnincntoundnesavnsnass 306 Building and Running the RKM MOMON ccccssessssesesseeeseeneseseens 306 Running the RKM Monitor from the Command Line 307 Attaching Data Monitor to the RKM Monitor ccccssesseseeseseeeeseees 307 Using Data Monitor to View Remote Kernel Metrics ccceseee 308 Rian De big Preterenees cissiiosdessaiinsesisninieemannnnnmninnmmnniemnacey 308 xviii 19 Contents Analyzing Core PU icc chee eee ached cae DOD E a a aTa o EE E E E E E 192 Acquiring Core Dump Piles esunaner AR 19 3 Attaching Workbench to a Core File sssscssssssssssssssssssscsssssssesssesse
270. item you are attempting to build is not downloaded to or running on an open target connection click OK to proceed with the build Otherwise click Cancel to abort the build and then close all open connections I Do not show this dialog again Cancel This dialog box warns you that a build may fail because the debugger may still have a lock on your files You can continue your build by clicking OK but be advised that when you see an error message in the Build Console similar to dld Can t create file XXX Permission denied you will need to disconnect your target and restart the build The best workflow for cases where you continually need to rebuild objects that are in use by your target is as follows Create a launch configuration for your debugging task When you need to disconnect your target in order to free your images for the build process the launch configuration allows you to automatically connect download and run your process with a single click when the build is finished You can even specify that your project should be rebuilt before it is launched by selecting Window gt Preferences gt Run Debug gt Launching and then selecting Build if necessary before launching For more information about launch configurations see 17 Launching Programs When you work with processes make sure that your process is terminated before you rebuild or relaunch You can then safely ignore the warning and check the Do no
271. iteral values For example installDir refers to the location in which you have installed Workbench By default this is C WindRiver on Windows hosts and HOME WindRiver on Linux and Solaris hosts Bold also indicates menu choices as in File gt New gt Project meaning to select File then New then Project Commands that you enter on a command line are shown in bold and system output is shown in typewriter text for example pwd home mary WindRiver The screenshots in this document were taken on a host running Red Hat Enterprise Linux so they may differ slightly from what you see on your screen 1 Overview 1 1 Introduction 1 1 2 Introducing Wind River Workbench Workbench is an integrated development environment for creating device software to run on embedded Wind River Linux systems Workbench is optimized for both small programs and very large ones with thousands of files and millions of lines of code It includes a full project facility advanced source code analysis simultaneous management of multiple targets and a debugger with capabilities for managing multiple processes or threads on a single target or on multiple targets Workbench and Wind River Linux have been developed in parallel to make it easy to develop Wind River Linux platform targets You may use any combination of Linux command line and Workbench GUI actions as desired Workbench ensures the smallest possible difference between the performance of the t
272. itional options A 8 1 Creating a ZIP file of Logs To create a ZIP file to send to a Wind River support representative 355 Wind River Workbench User s Guide 3 0 Linux Version 1 Select Help gt Collect Log Files The dialog box opens Collect Log Files Collect Log Files Collect logs of Workbench Specify the name and location of the archive which will contain relevant log information of various Workbench components Please provide this archive when contacting Wind River Support Note that some logs need to be enabled manually see the documentation for details how to enable the various logs To Zip file Gigaletifele gral Mi Browse Add project description files creation logs etc of checkmarked projects O QemuPlat Wind River Linux Platform 2 0 Platform Project oe penguin Wind River Linux Platform 2 0 Application Project 2 Type the full path and filename of the ZIP file you want to create or browse to a location and enter a filename 3 Check a platform project to include its build log and config log 4 Click Finish Workbench creates the ZIP file in the specified location 356 A Troubleshooting A 8 Error Logs Generated by Workbench A 8 2 Eclipse Log The information displayed in the A 7 Error Log View p 355 is a subset of this log s contents How to Enable Log This log is always enabled What is Logged All uncaught exceptions thrown by Eclipse java code Mos
273. k the destination project s Build Targets node and select Paste if you are pasting back into the original project type a unique name for the new build target This is useful for setting up the same build targets in multiple projects with different project types for example a library for a native application and a downloadable kernel module will have the same contents but different flags NOTE The build target and its contents are copied but any overridden attributes are not Removing Content To remove an item from the build target right click it in the Project Explorer and select Remove from Build Target or just select it and press Delete Depending on the item you selected the menu item may change to Exclude from Build Target if the item cannot be deleted for example recursive content cannot be deleted Pressing Delete also reinstates an item by removing the exclusion Excluding Content To exclude a specific item from the build target that was included recursively right click it in the Project Explorer and select Exclude from Build Target You can also use regular expressions to exclude groups of items 1 To add a pattern to the excludes list right click a folder in the build target then select Properties then select the Excludes tab 2 Click Add File to define a pattern to exclude specific files or file types For example type _test c to exclude any file named filename_test c You can include addition
274. k to the following checklist at various points to reconnect to the main thread that runs through these features On the other hand you may be able to follow the checklist by itself NOTE Some of the topics below have been explained in the previous chapter or as with Steps 3 to 4 within this checklist itself Essentially you want to take the following steps to create and debug a platform project 1 Create a Wind River platform project and do a build target on its FS node to create a file system for the platform See 3 2 Creating a Wind River Linux Platform Project p 54 These steps create a ProjectName_prj directory containing the file system for the remote system target and a default kernel The file system and kernel are on the host and are not at this point on the target system or accessible by it 2 Create a Wind River Linux application project from among the available pre coded sample applications such as Hello World Penguin and Multi Thread See 2 3 2 Creating a Wind River Linux Application Project p 38 in the previous chapter for an example NOTE If you want to follow this chapter as a tutorial build the ball application for the ARM Versatile AB 926E JS 3 Configure the build paths information for the application by using the application s Properties gt Build Properties gt Build Paths to specify a redirection root directory to contain the application build results For example you can specify a
275. known to Workbench See step 3 on how to resolve this 99 Wind River Workbench User s Guide 3 0 Linux Version 4 5 1 If the Compilation Unit Source Is Not Found If the source window where kgdb c should appear instead displays a message that says Source not found for compilation unit your vmlinux file is either missing or more likely does not point to the current location of your linux kernel source To fix this 1 Click the Browse button in this window and provide the path to your linux kernel s source directory If you have performed a make fs make C dist linux or a make all the Linux source folder will have been expanded in your project s build folder for example home user workdir myBoard build linux 2 6 14 type 2 Click Next until you can click Finish The location of kgdb c and any other kernel source will be resolved by Workbench You can view the mappings between the object files and the respective source files by right clicking the entry in the Debug View window and selecting Edit Source Lookup 4 5 2 If the Target s Terminal Window Is Stopped If you have a terminal window open to the target you may see that it is stopped For example if you try to enter a command you will find that you cannot To resume execution of the kernel click Resume in the Debug view 4 5 3 Setting and Removing a Sample Breakpoint With the kernel running again set a breakpoint as follows 1 2 100 Sel
276. l and a local message Depending on the display level you may see both messages interspersed If the Workbench Remote Systems connection is connected to the target disconnect Once Workbench is again ready reconnect to the target with the KGDB connection If you have placed moduleDebugExample ko in a location other than the root adjust the target connection s object mapping list to include that location and then connect to the target Make sure that the host path has a forward slash at the end Find the moduleDebugExample ko entry in the Remote Systems view If there is not a red S mark on its icon right click it and select Load Symbols The red S should appear after a moment indicating that symbols were indeed loaded If the symbols do not load or if moduleDebugExample ko does not appear in the Remote Systems view go to the platform project s Object Path Mappings screen click Add set the following values and click OK Target Path leave empty Host Path target 103 Wind River Workbench User s Guide 3 0 Linux Version 8 Right click the Arch OS entry in the Remote Systems View and select Attach to Core Click the Resume icon in the Debug view so that the kernel is Running Double click bpHere c in the moduledebug project See that it appears in the central editor view Right click in the left hand gutter of bpHere c at line 21 printfk KERN_ALERT of the routine putBreakP
277. l projects use a build driven setup unless build information is missing in which case all files will be parsed indexed CDT C C Development Tooling The Eclipse C C IDE code completion A feature of the source editor by which Ctrl Space presents a pop up list of proposals suitable for the current cursor position Proposals include types methods functions of the platform API depending on the project type and referred to as external API and types methods functions and variables that are visible in the current scope color context The color assigned to a particular process in the Debug view this color carries over to breakpoints in the Editor and to other views that derive their context from the Debug view cross development The process of writing code on one system known as the host that will run on another system known as the target 394 H Glossary debuggable objects Debuggable objects are the executable application files kernels kernel modules and libraries that can be accessed by both the host and Linux target These objects are ideally compiled without optimization compiled with the appropriate debug flags for example with g or g dwarf 2 and are not stripped of symbols disabled build Project builds for which Workbench provides no build support at all Useful for projects or folders that contain for example only header or documentation files that do not need to be built discovery
278. latform Native Application Projects Native application projects are managed projects that are developed and deployed on the host so no cross development is required The build specs assume local development tools Additional build specs support team development for when a team works with a combination of Windows Linux and Solaris host environments Wind River Workbench User s Guide 3 0 Linux Version 1 6 Debugging in User Mode or Kernel Mode Depending on your needs and the version of the Linux kernel you are running on your target you will use one or more of the following debug modes 1 6 1 User Mode User mode debugging allows you to perform source code debugging of user mode applications including multi process and multi thread debugging In user mode a usermode agent on the target communicates with Workbench on the host where you can edit your source code step through the application set breakpoints and so on Refer to 2 Introducing Application Development for a tutorial on the use of Workbench in user mode The following debuggers are available for user mode applications The Wind River Workbench debugger for native mode self hosted and cross developed applications The Eclipse CDT C C Development Toolkit debugger for only Linux native mode self hosted development 1 6 2 Kernel Mode Kernel mode debug allows for source code debugging of Linux kernels version 2 6 and later The kernel must be patch
279. le The name of this file is provided in the environment variable com_windriver_ide_launchcontrol_env_file The format of this file is a list of key value pairs on separate lines Each key and value is separated by an and the key identifies the variable name this is a standard Java properties file After a command is completed Launch Control will read this file and update any variables as specified in the file Launch control also defines the com_windriver_ide_launchcontrol_skip_next variable Setting this variable to true in the Pre Launch command causes the remainder of the sub launch to be skipped Setting this variable in post launch or error commands has no effect An example of how this could be used is to check for the existence of a server application in a pre launch command If the application is already running then specifying com_windriver_ide_launchcontrol_skip_next true in the com_windriver_ide_launchcontrol_env_file will cause the launch of the application to be skipped without invoking an error NOTE Note that the Wind River environment variables for individual launches are subject to change and you should not count on them being maintained across releases For details on variables beginning with the string org_eclipse refer to the documentation available at http help eclipse org 280 17 Launching Programs 17 6 Launches and the Console View 17 6 Launches and the Console View Workbench supports the Eclipse Console
280. lems tab Click these tabs to move back and forth between their contents or rearrange your window to view them both simultaneously Because you created an error in the main c file errors are encountered during the build process Notice that Workbench enters a task in the Problems view showing the type of error the file the error is in the location of the file and the location of the error It also shows warnings that occur in other locations in the code because of the error 4 Double click the error line that begins error expected in the Problems view The editor focuses on the erroneous line with an identical white X in a red circle to mark the position of the error in the file 46 2 Introducing Application Development 2 6 Building the Project and Correcting Simple Errors 5 Re enter the semicolon character you deleted in earlier steps This was at Line 62 in main c after gridInit 6 Right click the bookmark icon in the gutter and select Remove Bookmark 7 Save and close the file 2 6 2 Displaying a File s History Workbench tracks all changes that are made to any files in the project At this point several changes have been made to the main c file To display the change history on the main c file 1 Right click the file in the project tree and select Compare With gt Local History The History tab opens It may be labeled just H The upper area of the History view displays a list of the dates
281. les 117 custom 118 moving projects 119 KGDB and Workbench 88 enabling 92 enabling and disabling 113 over Ethernet 110 KGDB OE 94 kgdboe 89 L launch terminology 276 launch configurations automatic 69 creating 266 modifying 70 Launch Control 276 launch sequence 276 launching programs manually 275 layers 54 81 adding 83 line breakpoints 259 403 Wind River Workbench User s Guide 3 0 Linux Version linked resources path variables 192 linking project nodes moving and 167 loading symbols to debug server specifying an object file 234 logical nodes 166 M make rule in Project Explorer 210 makefile build properties 197 memory cache size target server 233 menuconfig 116 mode debug type 14 modprobe commands 93 multiple launches controlling 276 processes monitoring 291 target operating systems or versions 197 N Native Application project 13 148 155 application code 158 creating 156 navigation 164 New Connection wizard 228 NFS mounting file systems 91 nodes moving and un linking project 167 resources and logical 166 O object path mappings 107 QEMU 63 404 why required 234 operating systems multiple 197 P pango error 339 patch annotations 135 patches managing with Quilt 133 viewing annotations 135 path variables 192 pathname prefix mappings 235 penguin 70 pkglist files 123 platform 117 kernel modules 117 platform project 50 plug ins activating 319 adding an extension l
282. les are not displayed on a sub launch s Properties page because the information is readily available on the Environment tab The second source is from the sub launch s Environment tab if it has one The third source for the list of environment variables is defined by the sub launch s configuration type attributes Each sub launch configuration type defines its own set of attributes see the Eclipse documentation for Launch Configuration for details on sub launch attributes The fourth source of environment variables are defined by Launch Control and provide general support for the launch The variables defined by Launch Control for each sub launch are com_windriver_ide_launchcontrol_launch_mode com_windriver_ide_launchcontrol_env_file com_windriver_ide_launchcontrol_skip_next 279 Wind River Workbench User s Guide 3 0 Linux Version The environment variable com_windriver_ide_launchcontrol_launch_mode identifies the mode of a launch The mode may be either debug or run depending on how a launch is initiated for example selecting the Run gt Debug dialog to initiate a debug mode launch and Run gt Run to initiate a run mode launch Changing com_windriver_ide_launchcontrol_launch_mode has no effect it is only provided for information about a current launch Since the command s environment terminates after the command completes any variables which need to be changed for a launch must be written to a fi
283. leshooting complex embedded software The Wind River System Viewer API Reference is also included Wind River System Linux Platform User s Guide The Wind River Linux Platforms development environment provides an efficient way to develop Linux target kernels and embedded applications Development environments are available on a number of host platforms and support a large and ever growing set of targets Help gt Contents gt Wind River Documentation gt References gt Host Tools Wind River Workbench User Interface Reference This provides specific reference material for the Workbench GUI detailed information on individual menu choices buttons and so on that may not be 26 1 Overview 1 8 Finding Related Documentation covered in the User s Guide or may only be covered relative to the part of their functionality that is being discussed In many cases you can access relevant parts of this document by pressing the help key Programmer s Reference Information Additional documents provide details on Wind River and Eclipse APIs and libraries Help gt Contents gt Wind River Partners Documentation viPlugin User Manual The viPlugin allows you to add vi type functionality to your Workbench editor as documented here Additional information is available in the viPlugin Help Center at Help gt Contents gt viPlugin Help Center Eclipse Workbench User Guide This is the Eclipse documentation for Workbench and covers much of the
284. libc mips64 octeon libgcc mips64 octeon Export the sysroot It will then include these extra mullti libs Add this sysroot to Window gt Preferences gt WR gt WR Linux gt Sysroots You can now build mthread for example for both the 32 bit n32_octeon and the 64 bit octeon build specs 126 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems NOTE If you see a pointer size warning for the octeon spec it does not affect the build success Importing Packages The Import button lets you import install packages that are not listed in the Installable Packages window Use this feature to set up the imported package in the build system To import packages 1 Click the Import button The Package Import Tool appears 2 Click the package type File Wget or WR Linux Package 3 Browse for the package to import When you have selected the package the package list package name and version appear in the Package Import Tool screen 4 Click Go A shell window opens to display the import activity 5 Press RETURN as needed to return to the import tool from the shell 6 Examine the progress window to see that it has completed satisfactorily 7 Press Close The import concludes You still may need to complete the package for example to change it for cross compilation Building Packages Select the Targets tab for a set of buttons of build targets for the selected package Th
285. ll to gridInit Delete the semicolon after the call to gridInit Creating the Bookmark to the Error To create the bookmark to it 1 3 4 Right click the left gutter of the editor next to that line then select Add Bookmark The gutter is the shaded strip at the left edge of the Editor view It is likely in blue and it may be very thin In the Add Bookmark dialog box enter a bookmark name or accept the default gridInit and click OK A small bookmark icon appears in the gutter To save the file with the error click the Save button on the main toolbar Close all open files by clicking the X on the tab of their Editor view Locating and Viewing the Bookmark To locate and view bookmarks 1 44 To open the Bookmarks tab select Window gt Show View gt Other gt General gt Bookmarks The Bookmarks view shows all bookmarks in the project Because there is only one bookmark in this project only one bookmark appears in the list Double click the entry If you accepted the default name it is gridInit 2 Introducing Application Development 2 5 Configuring Project Build Properties The main c file opens in the editor with the bookmark line highlighted 3 Use the X in the main c tab to close the file without making any changes That is leave the error so you can follow the tutorial steps below which include correcting errors in builds 2 5 Configuring Project Build Properties Every proj
286. lly specify include directives to ignore 4 On the first wizard page select options for anlyzing the include statements of your sources 5 Click Next 6 On the Resolve Include directives dialog if there are unresolved directives you might click for instance Resolve All The resulting include paths will be stored in the build properties of the selected project You may also choose Resolve Add Substitute and so on 7 Click Finish Any include paths resulting from Steps 6 and 7 will be stored as team shared settings You can click Copy on the Include Paths page and paste the resulting paths into your makefile if necessary You can also chose Add Remove Edit and so on to edit the include paths Share is only possible for selections not including team shared paths 182 10 Navigating and Editing 10 5 Configuring the Indexer for Source Analysis If you encounter troubles with source navigation tools for certain files see A 4 Fixing Indexer Issues p 341 To share an index see 10 5 5 Sharing Source Analysis Data with a Team p 187 Configuring Indexing of Symbols Symbols Tab In the Symbols tab page of the Paths and Symbols dialog you can choose how to manage symbols that are in a Team Shared Miscellaneous or Build section For Team Shared symbols you can use the following buttons Add Remove to add or remove team shared symbols Edit to modify such symbols or to navigate to the properties page wher
287. login 217 SSH 217 Java application 272 debugging 274 launch and connect 272 kernel metrics RKM 306 Remote System Explorer 53 67 Remote Systems view 228 basename mappings 235 New Connection wizard 228 object path mappings 234 pathname prefix mappings 235 shared connection configuration 236 resources and logical nodes 166 RKM see remote kernel metrics RKM rlogin remote build connection 217 root filesystems 63 RPMs 123 configuration Wind River Linux 121 Run Time Analysis Tools 120 S safe areas 92 sample programs ball 37 penguin 70 searching for text 175 serial cable connections 98 set working 165 setting breakpoints restricted 259 unrestricted 259 signals POSIX 80 Source Analysis description 169 source analysis 405 Wind River Workbench User s Guide 3 0 Linux Version preferences 176 source lookup path adding sources 270 editing 297 SRPM packages 136 SSH remote build connection 217 startup Workbench 6 subprojects adding 149 Symbol Browser view 171 sysroots 37 59 system mode compared with task mode 294 T tar bz2 files 57 target deployment automated 138 file systems contents 129 operating systems multiple versions 197 PCD 94 servers back end settings 231 memory cache size 233 timeout options 233 TIPC 246 USB 242 TCP connections 89 team defining path variables 192 telnet connections 97 templates 54 81 adding 82 text replacing 175 search 175 TFTP configuring 64 tgtsvr co
288. lor context of a process also carries through to other views whose scope is determined by the contents of the Debug view The data views that appear in the Device Debug perspective usually update to reflect whatever is currently selected in the Debug view If you prefer you can start colored views that are pinned to a process of a particular color and update only when that process changes To open a view of a particular color select Window gt Show View gt Other gt Device Debug color gt view For more information about how to set up Debug view settings see the Wind River Workbench User Interface Reference Debug View 18 2 3 Stepping Through a Program Once a process has stopped under debugger control most often at a breakpoint you can single step through the code jump over subroutine calls or resume execution what you can do depends on what you selected in the Debug view When the program is stopped you can resume operation by clicking Resume on the toolbar of the Debug view If there are no more remaining breakpoints interrupts or signals the program will run to completion unless you click the Suspend button To step through the code one line at a time click the Debug view s Step Into button If you have other data views open such as the Registers or Variables views they will update with current values as you step through the code The effect of Step Into is somewhat different if you click Toggle Disassembly
289. losed explicitly at any time In general closed projects are excluded from all actions such as symbol information queries and from workspace or project structure builds that is if a parent project of a closed subproject gets built It is not possible to manipulate closed projects You cannot add delete move or rename resources nor can you modify properties The only possible modification is to delete the project itself Closed projects require less memory 163 Wind River Workbench User s Guide 3 0 Linux Version 9 5 Scoping and Navigation There are a number of strategies and Workbench features that can help you manage the projects in your workspace whether you are working with multiple projects related to a single software system or multiple unrelated software systems 164 Close projects If you expect to be working in a different context under a different root project for a while you can select the root project you are leaving and right click Close Project If you close your root projects when you stop working on them you will see just the symbols and resources for the project on which you are currently working see also 9 4 Opening and Closing Projects p 163 Go into a project If you want to see for example the contents of only one software system in the Project Explorer select its root project node and right click Go Into You can then use the navigation arrows at the top of the Project Explor
290. lt with different build tools as described below The application project type is appropriate because you need to use both the Linker and the Librarian build tools 1 Create an application project to hold all the files mentioned above a Select New gt Wind River Linux Application Project b Name the project LIB for example 204 12 Building Use Cases 12 4 Creating Library Build Targets for Testing and Release c Click Next until you reach the Build Target dialog d Change Build tool to Librarian and check Pass build target to next level Build Target Specify a build target Build target name uB Binary output name uB Build tool Librarian Build output passing e Click Finish 2 Import the library files into the newly created LIB project a Right click the project select Import gt File System and click Next b Browse to the directory containing the library files then in the left pane select the check box in front of the directory name File system Import resources from the local file system From directory Jhome user rod lib_project v f lib_project Z sourcel c M source2 c W l test c All the files in the directory are imported by default c Click Finish 205 Wind River Workbench User s Guide 3 0 Linux Version 3 Create a target for the test version of the library a Right click the green Build Targets node under
291. luding the JVM Because of this it is possible for the entire Java application including the JVM to be stopped by the native debugger This will happen for example if you choose to manually suspend the entire process from the native debugger You can also set a native breakpoint in your JNI library that will stop the entire process This can result in all the threads of the application including the ones communicating with the JDT Java debugger to be suspended When this happens the JDT debugger is not able to debug the Java side as it is unable to communicate with the JVM In Workbench the Java debugger entries in the Debug View will display the message debugger is disabled may be out of synch indicating that the Java debugger is disabled and the Debug view display of Java information may no longer be accurate In this condition you cannot perform any Java debugging operations such as planting Java breakpoints inspecting Java variables and so on Re Enabling the JDT Debugger Click Resume to resume the entire process from the native debugger not just one thread The Java debugger will re establish communication with the JVM and become enabled You can now continue with Java JNI cooperative debugging 305 Wind River Workbench User s Guide 3 0 Linux Version 18 6 Remote Kernel Metrics Remote kernel metrics RKMs are operating system signals metrics dynamically collected by the rkm_monitor_linux target agent T
292. lue to pl The usr directory that appears already has all contents marked with icon Reset Pattern Filter to blank and click Return in the text box to restore the default tree filter Changing Ownership To add a device 1 2 132 Right click the dev directory and select New gt Device Use the settings Char luckyDevice 7 11 The new device appears with the package name of added Right click the device and change the owner to lady and the group to luck Right click this new device and select Remove 5 Configuring Wind River Linux Platforms 5 6 Using Quilt to Manage Patches 5 6 Using Quilt to Manage Patches The Wind River Linux build system works with two patching models The previous model called the Classic patching model which carries forward from wrlinux 1 3 and is based on patch list files and the program patch SSS 5 NOTE Wind River strongly encourages you to use the Quilt patching model E The new default model called the Quilt patching model which is based on patch but provides an additional rich set of patching features such as pushing new patches to go forward popping patches to go backward capturing development changes into new patches deriving patch annotation data and more The Quilt patching model is the default for both command line and Workbench configured projects as it provides many advanced patching features NOTE The enable quilt no yes configure option over
293. m dialog box appears Select a target operating system from the drop down list then click Next The Project dialog box appears Type in a name for your project select Create project in workspace then click Next Click Next to accept the default settings in the next dialog boxes then click Finish to create your project In the Project Explorer right click your new project and select New gt Folder The Folder dialog box appears Type in a name for your folder then click Advanced and select the Link to folder in the file system check box Type the path or click Browse and navigate to your source root directory then click OK to create the new folder Click the plus next to the folder to open it and you will see the source files from your read only source directory Eclipse calls items incorporated into projects in this way linked resources NOTE This mechanism cannot be used for managed build projects only for user defined projects A 6 2 Build System Errors For general information about the Build System see 11 Building Projects A 6 3 Building Projects While Connected to a Target If you right click a project in the Project Explorer and select Build Project while you have a target connection active in the Remote Systems view you will see this error 348 A Troubleshooting A 6 Error Messages W Warning Target connections are still open and files that need rebuilding might therefore be locked If the
294. mmand TIPC 232 250 TIPC kernel module 247 overview 245 proxy 248 406 targets 246 tools development communications managing 227 troubleshooting download failed wrong build spec 351 Error Log view 355 357 exception on attach 351 Exec Path on Target 352 help system on Solaris 339 on Windows 340 launch configurations 354 pango error 339 registry unreachable 337 resetting Workbench defaults 340 running a process 353 target connection 350 workspace cannot be locked 338 tutorial ball sample program 37 Hello World 32 QEMU 61 Workbench for Linux 31 85 Type Hierarchy view 172 U UDP connections 89 ulimit command and core files 310 Update Manager 321 USB target connection 242 user mode debugging 14 User Space Configuration 59 121 user defined builds 190 projects 12 148 151 152 usermode agent building 85 external locations 84 hardware targets 64 reference page 251 running 65 V version control adding Workbench project files to 330 VIO see virtual I O VIO virtual I O VIO 281 Virtual WRLinux0 terminal window 63 W Wind River Linux applications 13 147 platforms 13 50 147 Wind River proxy 375 Workbench Application Development perspective creating a project 37 bookmarks creating 44 finding 44 removing 47 viewing 44 breakpoints modifying 80 running to 78 setting 78 building a project builderrors 46 rebuilding 47 ClearCase views 329 comparing files 47 creating
295. most recently launched application The Debug button in the toolbar to debug the most recently launched application The arrow next to the Run button in the toolbar to select an application to run from among your most recent launches The arrow next to the Debug button in the toolbar to select an application to debug from among your most recent launches Refer to 17 Launching Programs for more information on the run and debug modes of launch configuration 3 9 3 Using the Device Debug Perspective The default Device Debug perspective includes views suited to executing and debugging a program including the Project Explorer and Remote Systems views as before but replacing the Outline view with the following elements The Debug view The Breakpoints view A tabbed notebook that includes the Variables Expressions Registers and Memory views Notice that the new perspective is present in the shortcut bar at the top right edge of the Workbench window where a button for Device Debug perspective has been added to the buttons for Open a Perspective and the Application Development perspective Switch between the two perspectives by clicking their buttons As with the Application Development perspective the views in the Device Debug perspective can be repositioned to suit your needs 74 3 Creating and Debugging Platform Projects 3 9 Debugging an Application on the Target The action of the ball sample program is viewed
296. n 12 2 Adding Compiler Flags You may know the exact compiler flag you want to add for example w and use the GUI to help you put it in the right place as shown in Adding a Compiler Flag by Hand p 202 You can also use the GUI to help you specify the correct compiler flag for what you want to do as shown in Adding a Compiler Flag with GUI Assistance p 203 NOTE This section describes how to add and edit the compiler flags on specific projects However for Wind River Linux projects global changes are made in board templates so that the settings can be used by both the command line build system and Workbench as described in Wind River Linux Platforms User s Guide Adding a Compiler Flag by Hand If for example you are familiar with the GNU compiler command line and you just 1 2 3 4 202 want to know where to enter the w option In the Project Explorer right click an application project and select Properties In the Properties dialog box select the Build Properties node In the Build Properties node select the Build Tools tab In the Build Tools tab Set the Build tool to C compiler Set the Active build spec to for example PENTIUM gnu native c Inthe field next to the Tool Flags button append a space and w The contents of this the Tool Flags field you have just modified is expanded to the ToolFlags placeholder you see in the Command field above it Because you entered the w in the Tool Flags fiel
297. n tab accept the default name or specify a different one 7 Choose your target connection from the Connection to use pull down menu 8 Click Run The rkm_monitor starts on the target as shown in your Debug view 306 18 Debugging Projects 18 6 Remote Kernel Metrics Running the RKM Monitor from the Command Line You can also start the RKM monitor by specifying it on the command line To see the various options available enter the following from the directory containing the rkm_monitor_linux executable that you built rkm_monitor linux help For example to start the monitor with an index value of 125 instead the default 127 rkm_monitor linux index 125 amp In this way you can run multiple monitors for example configuring one to collect a few signals for all processes at a low sampling frequency and another to sample a complete set of metrics for a few processes at a high frequency By selecting the signals to monitor you can reduce the memory CPU and network resources required to monitor the large default set of signals Also you can modify the included rkm_monitor_linux source to monitor specific signals not available by the default configuration or even monitor specific portions of an application As another example you might just want to monitor memory usage for the root user taking 10 samples every second rkm_monitor_ linux samples 10 processes user root sysmetrics memory amp When you attach Da
298. n void int 2 In the editor click the call to gridInit to highlight that line 3 Right click gridInit and select Declarations Specify the scope for your search workspace project or working set The Search tab displays the ball node which you can open onto a list of the project files in which gridInit has been declared Finding Elements To open a more advanced symbol or element search dialog box 1 Select Navigate gt Open Element The Open Element dialog appears 2 Enter grid Ball As you enter a Pattern for the symbol including wild cards Workbench lists all matching elements All those that match grid Ball are displayed 3 Highlight one and press Enter to see its declaration 41 Finding Strings Wind River Workbench User s Guide 3 0 Linux Version To find and optionally replace any string in the active Editor view use these functions Edit gt Find Replace or use CTRL F CTRL K to Find Next CTRL SHIFT K to Find Previous See the Edit menu for other choices The Search menu provides a grep like search for strings in any file in the workspace or in any location 2 4 3 Using Code Completion to Suggest Elements Code completion suggests methods properties and events as you enter code To use code completion right click in the editor and select Source gt Content Assist or use CTRL SPACE as a keyboard shortcut A pop up list displays valid choices based on the letters you have typ
299. nalysis To generate include paths and resolve include directives for managed projects 1 Begin to open the Resolve Include directives dialog by choosing one of these paths Right click the project in the Project Explorer select Build Options gt Generate Include Search Paths Or open the project properties select Build Properties and on the Build Paths tab page click Generate 2 Optionally specify include directives to ignore 3 Click Next 4 On the Resolve Include directives dialog if there are unresolved directives you might click for instance Resolve All The resulting include paths will be stored in the build properties of the selected project You may also choose Resolve Add Substitute and so on 5 Click Next The results are stored in the build properties of the project Setting Build Properties for User Defined Projects For user defined projects you must edit makefiles You may need to edit the build command and default build rules in the build properties For that purpose select the project in the Project Explorer view and navigate to the Build Properties page Then Set a proper build command in the Build command field on the Build Support tab page if necessary Set a Build Project rule and Build folder rule on the Build Targets tab page if you use any other than the all rule in your makefile 179 Wind River Workbench User s Guide 3 0 Linux Version Build output is analy
300. nd Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 9 Technical Support If you have questions or problems with Workbench or with Wind River Linux after completing the above troubleshooting section or if you think you have found an error in the software please contact the Wind River Customer Support organization contact information is listed in the release notes for your platform Your comments and suggestions are welcome 363 Wind River Workbench User s Guide 3 0 Linux Version 364 Workbench and Command Line Techniques The following explores some of the ways that Workbench and the command line are interchangeable and complementary so that you can use the right tool for the task or even use one to help debug the other Workbench and the Command Shell Environment Setting the Environment with wrenv The wrenv tool is the key to setting up a proper environment This is the tool that gathers the environment settings from the installed products for example when Workbench executes a build command or when Workbench itself is launched NOTE If you use the Wind River Linux make file system an environment is automatically set up for each make command If however you wish to try things outside of those Makefiles you will need to set up the Wind River Linux environment using this method The standard usage for the wr
301. nd River Workbench User s Guide 3 0 Linux Version 7 4 2 Configuring Build Targets Use this tab to configure make rules and define custom build targets for your project 1 ra Type the desired make rules into the fields in the Make rules section These rules are run when you select the corresponding options from the Project menu or when you right click your project in the Project Explorer and select them from the context menu The Build Folder and Clean Folder options are available when you select a folder in the Project Explorer To define a custom build target click New The New Custom Build Target dialog opens Type in a name for your build target then type in the make rule or external command that Workbench should execute You can also click Variables and add a context sensitive variable to the make rule or command The variables represented in the Select Variable dialog are context sensitive and depend on the current selection in the Project Explorer For variables that contain a file specific component the corresponding target is only enabled when a file is selected and the variable can be evaluated Build targets without file specific components are always enabled Choose the type whether it is a Rule or a Command Choose a refresh option for the build target specifying whether Workbench should use the project setting refresh the current folder or project or do nothing Click OK to close the dialog Edit a
302. nd defined connections you will want to run test and debug the projects on your target To do this you first need to connect to the target Typically after configuring a new connection in the New Connection dialog the connection to the target is attempted automatically If you do not want the connection to be attempted at that time unselect Immediately connect to target if possible on the final dialog screen Connect to and disconnect from targets in the Remote Systems view by selecting a connection node and then using either the appropriate toolbar button or by right clicking and selecting Connect See 13 2 The Remote Systems View p 228 13 5 Connection Settings When you have specified the type of connection to make a new connection dialog box presents various parameters that you must configure 230 13 Connecting to Targets 13 5 Connection Settings Connection Template For KGDB connections select the type of connection that best describes how you are connecting to your target Choose from the following connection types Linux KGDB via RS232 A serial cable connection Linux KGDB via Ethernet An Ethernet connection Linux KGDB via Terminal Server A connection in which you go through a terminal server to reach the target Custom Linux KGDB Connection This template assumes no defaults Back End Settings Back end The Back end settings specify how a target server will communicate with a target Back end for
303. nd the launched application Configuration management specific synchronizations or updates relevant to the workspace for example cvs update ClearCase view synchronization and so on have to be done before this script is started 386 Command line Importing of Projects E1 Introduction 387 F2 wrws_import Reference 388 F 1 Introduction The Workbench installation includes a wrws_import script that allows you to import existing projects into workspaces from the command line The following section provides a reference page for the command 387 Wind River Workbench User s Guide 3 0 Linux Version F 2 wrws_import Reference A script for launching a GUI less Eclipse application that can be used to import existing projects into the workspace is available in the Workbench installation and is named wrws_import bat Windows only wrws_import sh Windows Linux and Solaris Execution Specify the location of the wrws_import script or add it to your path and execute it with optional parameters for example wrws_import sh data workspace_dir Options General Options d debug argument Provide more information The argument if given specifies the level of verbosity Default is 2 the possible options are 2 3 4 h help Print command help q quiet Do not produce standard output Eclipse Options data workspace_dir Specify the Eclipse workspace with this option Import Project Options f
304. nelTask main on vxsimO hostname Symbol not Found Processes can be run directly from the Project Explorer but kernel tasks must be downloaded before running Right click the output file select Download fill in the Download dialog box then click OK If you see this error and you did download the file open a host shell for your connection and try to run the task from the host shell Type lkup entrypoint to see if your entry point is there Downloading an Output File Built with the Wrong Build Spec If you built a project with a build spec for one target then try to download the output file to a different target for example you build the project for the simulator but now you want to run it on a hardware target you will see this error 351 Wind River Workbench User s Guide 3 0 Linux Version Download Failed x WTX Loader Error Object module not appropriate To select the correct build spec right click the output file in the Project Explorer select Set Active Build Spec select the appropriate build spec from the dialog box then rebuild your project Your project should now download properly Error if Exec Path on Target Is Incorrect If the Exec Path on Target field of the Run Real time Processes dialog box does not contain the correct target side path to the executable file if for example it contains the equivalent host side path instead you will see this error R Exception on Attach Fail
305. ng Wind River Linux Platforms 5 3 Adding Kernel Modules to the Platform window Select the Kconfig tab to see the definition of the item and the file system location where it is defined If you click the file path link shown in blue the file is added to the Edit view and you are placed at the location of the item definition Create a new kernel configuration by modifying the settings of menu items in the top window The current configuration status of items is indicated by the icons associated with them Refer to Wind River Workbench User Interface Reference Kernel Configuration Editor for a detailed description of the icons in the menu The Configuration view does not show all items as some of them are disabled due to dependency conditions To view all items including disabled items right click in the Configuration view and select Filters gt Show All The disabled items are shown as greyed out You can still select them and view the Dependencies tab to understand the reasons they are disabled Modifying the Configuration For example if you want your kernel to include support for PCMCIA or CardBus cards find Bus options in the scroll down list click the arrow to expand it and then click the arrow next to PCCard This displays the entry for PCCard support This is a tri state configuration item which can be set to n for not included m for included as module or y for built in Double click the item to change the setting See the Help
306. nication problem between the TIPC target and TCP IP hosts Wind River provides the wrproxy process which acts as a gateway between the host and the target For a more generalized use of wrproxy see D Configuring a Wind River Proxy Host 245 Wind River Workbench User s Guide 3 0 Linux Version A basic diagram of a Workbench host configured to debug a TIPC target is shown in Figure 15 1 Figure 15 1 Workbench Host Proxy and TIPC Target Workbench Host TIPC Proxy TIPC Target with Target Server with WDB Proxy 4 with WDB Agent The Workbench host communicates using UDP the TIPC target communicates using TIPC and the proxy translates between them Note that the functions of the three network hosts shown in Figure 15 1 may be combined in different ways for example the WDB proxy and WDB agent may both reside on a single target You may even configure your Workbench host to support all functions if you want to test your debug capabilities in native mode before configuring external TIPC targets The following sections describe how to configure TIPC targets configure a proxy and configure your Workbench host to support debugging over TIPC 15 2 Configuring TIPC Targets To configure TIPC targets you must install the TIPC kernel module on them To configure them to communicate with Workbench you must also run the WDB agent on them Note that TIPC communication between nodes in a clus
307. not have this limitation You will need either physical serial cable that can make the connection or alternatively you can set up a Telnet port repeater that connects the serial connection to a Telnet port on the intranet 4 2 3 Mounting the Target s File System via NFS If you already have the NFS image mounted to your target s file system skip this procedure To allow easy kernel module transfers from the host to the target especially if your target is a NFS mounted via pxeboot 1 2 Open a console on your host Change to super user mode su Create a mount directory for the target rootfs mkdir target chmod a rw target Mount this directory In this example the many lab boards get their root file systems from NFS directories on a shared host mount t nfs ala tuxlab export pxeboot my board rootfs target 91 Wind River Workbench User s Guide 3 0 Linux Version 4 2 4 Kernels Enabling KGDB versus Debug Builds The KGDB feature is a Linux kernel configuration option as opposed to compiling the kernel using the debug flags By default KGDB support is enabled in the pre built and configured Wind River Linux kernels You can configure a platform project with enable debug but this has no effect on KGDB and only applies to the package builds The pre built or generated vmlinux file contains all the required debug information required for the kernel See 4 8 Enabling and Disabling KGDB in the Ke
308. ns 221 Debug the Application on the Remote Host cccesssesseseseesseeneseees 221 PART V TARGET MANAGEMENT 13 Connecting to Targets acta ce ee ire 227 193 1 Introduction sccsescsssserereesssnvicrneresancncrwerenaransacarecreeesns iesniaancavarenspeeinnnentenenessipandanvadyon 227 13 2 TheRemote Systems View ssicesissisasisissensoss seanssdensretsnas cassannsionaonesiontnseienvatseagectsies 228 133 Detning a New Connechott csecsen eskoi aia 228 13 4 Establishing a Connection isasesccsicsesancssecnanssasssnetansusnonsnsanssopasvastontnanseswineanagensians 230 13 5 Comnection SOHN BS ssc eccsscesrsrencucirecsnensrenenciconsoererensenrennennvererecannnnenntaeneneynnnetionte 230 SEE 100 Lela si ch career etre corre mee eres gree ere Se te any rarer el erer sr evare rere 231 De Gre eS a dee oem ae oer demiine 231 Taser Bile oye ener ROMO orrua e 232 Advanced Options RGDB Only scciisisscsseasananiaassandeinariaananteciieanae dance 232 Advanced Target Server OPUONS cciinsranndcioiimmamnnmnknns 232 fe LING E A enna ann meee 233 1351 TagetOperating System Setngpa susuriin 233 1932 Object Path Mappings scones aapiicwainsmimndanmuiiesnaneny 234 1359 Speciiving an Object Pile cccnincounnmncannmmnninmbaniorwiens 234 Pathname Protx Mapp S sinisisi onnaa 235 xiv 14 15 Contents Basename Ba ei asse iA 1354 Target State Refresh Page innossa nna ae CPU s on Target Board Ta m State Refresh Setting Listen to Execution onead L
309. ntranet to subnet agent as described earlier Make sure that there are no firewalls on the host or target that may be blocking the connection Make sure that there is only one copy of the Wind River WTX Target Registry running You can try killing any running copy s and have Workbench start a fresh instance You may need to restart Workbench Make sure you have declared 127 0 0 1 localhost within your etc hosts file so that Remote Systems view can find the Target Registry on the host You can turn on the debug log for the KGDB connection by adding the following to the advanced options box of the connection wizard a Right click on the connection b Select Properties c Fill ina location for the log in the Backend Log d Attempt the connect again e Select Help gt Collect Logfiles which will gather the connection log files f Forward this to the Wind River Support team 4 5 Attaching and Debugging the Kernel from Workbench This section describes how to access the target s kernel and source code once a KGDB connection is made If the connection failed go to 4 4 4 When a KGDB Connection Fails p 98 Once the connection is established Workbench shifts to the Embedded Debug perspective and the editor opens to the stopped location in the kgdb c source file If you use the pre built vmlinux file that comes with the pre built kernel in wrlinux 1 x boards the path to the source files will not be immediately
310. o Targets and the RSE User Guide available from the Workbench help system 1 7 6 Working with Debugging Views Several debugging views have been replaced by their Eclipse counterparts 20 1 Overview 1 7 What s New in Eclipse Related Changes Old Workbench Memory View Local Variables Watch Registers a e O 0x40400 0x00040400 3D 60 00 04 38 2B 28 00 3D AO OO 8 a Cy 0x0004040B 05 39 AD 97 18 3C 40 00 OS 38 42 9 lt 8B 0x00040416 97 18 48 00 01 61 48 00 OO 00 38 H aH 8 0x00040421 63 00 01 4E 80 00 20 00 00 00 OO c N s 0x0004042C 00 00 00 00 45 6D 62 65 64 64 65 Embedde 0x00040437 64 20 53 75 70 70 6F 72 74 20 54 d Support T 0x00040442 6F 6F 6C 73 2C 20 49 6E 63 2E 94 ools Inc 0x0004044D 21 FF FO 7C 08 02 A6 93 E1 00 OC S a 0x00040458 90 01 00 14 7C 7F 1B 78 3D 80 00 O x 0x00040463 04 39 8C 14 08 91 81 00 08 3C 80 9 lt 0x0004046E 00 04 38 84 14 14 7F E3 FB 78 48 8 0 amp ixH 0x00040479 00 OD 81 2C 03 00 OO 40 82 00 OC pes 0x00040484 38 60 00 00 48 00 00 08 38 60 00 8 H 8 0x0004048F 01 83 E1 00 OC 80 01 OO 14 7C 08 0x00040494 03 A6 38 21 00 10 4E 80 00 20 94 8 N SS 3 7 74 0x401075 0x00040400 32 BS BH 6 9 0x00040410 48 000 UB H aH 0x00040420 100 0 00 amp c N 0x00040430 456D6265 Embedded Support 0x00040440 20546F6F 6 Tools Inc 0x00040450 7C080
311. ocation 319 creating a directory structure 316 creating a Workbench plug in for Eclipse 323 installing ClearCase 317 web sites 316 post launch command Launch Control 277 pre launch command Launch Control 277 processes attaching to running 283 disconnecting debugger 296 project application code 146 build remote 215 closing 164 create for read only sources 347 creating 145 162 Customer Specific Linux Application 147 Linux Kernel 148 external location 84 files Wind River Linux 60 files version control of 330 gointo 164 names 144 Native Application 13 148 155 opening 163 platform 50 project structures 148 scoping 164 user defined 12 148 190 Wind River Linux Application 13 147 Wind River Linux Platform 13 147 Project Explorer move copy delete 165 moving and un linking project nodes 167 target nodes manipulating 168 user defined build targets 210 proxy host 375 Q QEMU connections 61 export dist directories 61 KGDB kernel debugging 110 Quilt commands 134 importing packages 136 patching model 133 setting up 133 viewing patch annotations 135 R read only sources creating projects for 347 redirection root directory with ClearCase 330 registry 237 changing default 239 data storage 238 error unreachable 337 launching the default 237 shutting down 239 wtxregd 238 Index regular expressions to exclude contents of build target 193 remote build 215 setting up environment 214 connection 215 r
312. ode The term symbol in the former meaning of programming language element functions methods types etc has been replaced by the term element system mode When in system mode the debugger is focused on kernel processes and threads When a process is suspended all processes stop Compare with user mode target agent The target agent runs on the target and is the interface between Wind River Linux and all other Wind River Workbench tools running on the host or target target server The target server runs on the host and connects the Wind River Workbench tools to the target agent There is one server for each target all host tools access the target through this server TIPC Transparent inter process communication protocol typically used by nodes within a cluster Wind River provides a proxy and usermode agent program that allow Workbench to access targets within the TIPC cluster user defined build Project builds for which you set up and maintain your own build system and makefiles and for which Workbench provides minimal support beyond a GUI launch make rules expressed in the Project Explorer and build output to the Build Console user mode When in user mode the debugger is focused on user applications and processes When a process is suspended other processes continue to run Compare with system mode For Linux 2 6 and higher kernels user mode is a separate connection type Compare with kernel mode 399
313. of Project Creation Wizard Settings All project creation wizard settings can be modified in the Project Properties once the project exists To access the Project Properties from the Project Explorer right click the icon of the project you want to modify and select Properties For more information about project properties see 11 4 Accessing Build Properties p 196 6 3 2 Projects and Application Code All application code is managed by projects of one type or another You can import an existing Workbench compatible project as a whole or you can add new or existing source code files to your projects For more information select File gt Import to open the Import File dialog then press the help key for your host 6 4 Overview of Preconfigured Project Types Workbench offers the following pre configured project types Wind River Linux Application Project p 147 Wind River User Defined Project p 147 Wind River Linux Platform Project p 147 Wind River Linux Kernel Module Project p 147 Customer Specific Linux Application Project p 147 Customer Specific Linux Kernel Project p 148 User Defined Project p 148 Native Application Project p 148 NOTE You may see different project types depending on your installed software Platform developers have access to kernel source and kernel tools whereas application developers do not Refer to the documentation on the particular software for details on specific project types
314. ointHere Select a System Context break point NOTE If you find that the break point cannot be planted make sure you added the Object Mapping Once it breaks as seen in the Debug view try single steps in and then out of this procedure Then click Resume When it breaks again disable the break point and click Resume You can remove the module from the kernel with the rmmod command kgdb _target_ rmmod moduleDebugExample ko 4 6 3 Stepping into User Supplied Kernel Module init from module c The section describes how you can place a breakpoint in the kernel s module load routine and step directly into a loading module s init routine This technique can be used in many ways beyond this specific example You can also see the next section for fast ways to break within specific kernel module init routines loaded or not 1 104 Select File gt Open File and browse to the kernel subdirectory of your build s Linux 2 6 14 source tree root For example module c might be found at home user workdir myboard build linux 2 6 14 type kernel module c Double click the module c file to open it in the editor Go to the sys_init_module routine and find the lines below that call the module s init procedure press CTRL F and search for the string Start the Module Start the Module gt if mod sinit NULL ret mod gt init 10 11 4 Kernel Debugging Kernel Mode 4 6 Debugging User Supplied K
315. oject 269 Wind River Workbench User s Guide 3 0 Linux Version 17 2 5 The Debug Options Tab The Debug Options tab only appears for launch configurations in debug mode With Break on Entry checked and main entered in the box the process will break at launch on the entry to the main routine for debugging operations 17 2 6 The Source Tab The Source tab displays the search order for source files during debugging The search order is determined by a location s position in the list Configuring the Source Lookup Path is optional and is only necessary if the build target was compiled on a different host See 18 2 9 Changing Source Lookup Settings p 297 for more information about the source locator 1 On the Source tab click Add to configure the source lookup path 2 Select the type of source to add to the lookup path see 18 2 9 Changing Source Lookup Settings p 297 for a description of each type 3 Once you add a new source to the lookup path you can adjust its position in the search order by clicking Up or Down to change its position in the list 17 2 7 The Common Tab The Common tab allows you to specify whether this launch configuration is Local or Shared local is the default whether you want to access it from the Workbench toolbar buttons and if the program should be launched in the background 1 If this launch configuration is shared with others on your team click Shared then type in or browse to the d
316. on Tool The File System Layout Configuration Tool manages target file system contents before they are finalized in the export dist directory and the dist tar bz2 file This tool consists of A script that controls the file system contents A Workbench counterpart to graphically manage it See the Wind River Linux Platform User s Guide for more about the script itself The following subsections explain the context menu entries for the file system configuration tool as well as how to use the tool to Examine meta properties of the files in the file system Add and remove files and directories to and from the file system Work with packages Add devices and change ownership Using the Context Menu Entries The Filesystem Layout Configuration Tool provides the following context menu enries Open brings up the selected file resource in an editor if the file exists in the local file system for example if the file is an added file It is not enabled for files that are located in an rpm archive except for those files located in project filesystem fs and in an rpm named board config rpm New Folder creates a new folder below the selected resource Link creates a new symbolic link You must provide the link location and target The location specifies where in the file system the link should be placed The link value specifies the target to which the link should point this value is automatically populated with the cu
317. on a Non PCD Target p 93 Use port 6443 This port is reserved for KGDB connections If you are using the agent proxy select the respective agent proxy port number as described earlier Click Next Select the Target OS Linux 2 6 if it is not already set For the Kernel Image point to your kernel s vmlinux mybuild export vmlinux If you have built the kernel the physical location of the new symbol file is here mybuild puild Linux 2 6 14 vmlinux NOTE Do not select the kernel image itself for example the bzImage file Click Next For the Object Path Mappings screen click Add set the following values and click OK Target Path leave empty Host Path target Select Next through the following dialog boxes then press Done 4 Kernel Debugging Kernel Mode 4 4 Connecting with KGDB from Workbench This may take some time to load all the kernel symbols on the order of 20 to 40 seconds When it completes there will be a red S on the vmlinux element in the target s connection tree NOTE Make sure that the target has started the module kgdboe before opening the connection in Workbench else you will get a timeout and an connection error summary When the connection is successful the Remote Systems view displays the connected message and the kernel is shown as Stopped Proceed to 4 5 Attaching and Debugging the Kernel from Workbench p 99 If the connection failed go to 4 4 4 When a
318. on about using configuration and other Eclipse startup parameters see Help gt Help Contents gt Wind River Partners Documentation gt Eclipse Workbench User Guide gt Tasks gt Running Eclipse 320 20 Integrating Plug ins 20 6 Installing JDT for Third Party Plug ins and Debugging 20 6 Installing JDT for Third Party Plug ins and Debugging Previous versions of Workbench included a modified version of the Java Development Tools JDT but this has been removed for better integration with Eclipse and certain third party packages However some third party plug ins have a dependency on JDT To use the Workbench Update Manager to install the JDT 1 10 You can also use the Update Manager to search for new features and other updates DL sae Open the Update Manager by selecting Help gt Software Updates gt Find and Install Select Search for new features to install then click Next Select The Eclipse Project Updates check Automatically select mirrors and click Finish The Search Results dialog opens Check Show the latest version of a feature only Expand The Eclipse Project Updates then Eclipse SDK 3 3 1 Check Eclipse Java Development Tools 3 3 1 1331 and click Next Accept the JDT license agreement then click Next Click Finish The Feature Verification dialog eventually opens Click Install All Click Yes to restart Workbench 321 Wind River Workbench User s Guide 3 0 Linux Version 322
319. on entry into the method main in the main class In the Connection tab a Select the correct target connection from the Connection to use pull down menu b Ifyou are using an NFS mount and have not specified object path mappings for your target connection you can do that now by clicking Properties select the Object Path mappings tab and click Add Enter the host paths and target paths that map For example if you have mounted your target s root filesystem on the host s target directory enter for the target path and target for the host path Click OK then click OK again to return to the launch configuration tabs c Enter or browse to the path of the java binary on the target in the Exec Path on Target field For example if the java binary on the target resides in the usr bin directory enter usr bin java In the Arguments tab enter the directory path to the class files in the Classpath field For example if the target path java classfiles holds the class files for your Java application enter java classfiles in this field Note that the complete command line is displayed at the bottom of this tab In the Debug Options tab enter a port number This is the debugging port number for JOT not the usermode agent port number This should be a 17 Launching Programs 17 4 Launching Programs Manually unique number less than 65536 not used as a port by any other application and it should be greater than 1024 which is t
320. on the lower right hand corner Planting Inserting Breakpoints Sometime it is hard to insert a breakpoint in the middle of a file and have it actually planted One trick is to set a breakpoint on a global routine to bring in the expected source file to the debugger Workbench may in fact prompt and guide you if you had not properly set up the proper source code mapping Once that happens you can then set the breakpoint that you desire That global routine can be the same routine that contains the desired location or it could be an entirely unrelated routine as long as it is in the same C file A 6 Error Messages Some errors display an error dialog box directly on the screen while others that occurred during background processing only display this icon in the lower right corner of Workbench window amp Hovering your mouse over the icon displays a pop up with a synopsis of the error Later if you closed the error dialog box but want to see the entire error message again double click the icon to display the error dialog box or look in the Eclipse Log p 357 346 A Troubleshooting A 6 Error Messages This section explains error messages that appear in each Workbench component A 6 1 Project System Errors For general information about the Project System see 6 Projects Overview Project Already Exists If you deleted a project from the Project Explorer but chose not to delete the project contents from your workspac
321. onal configuration for details see 18 2 1 Configuring Debug Settings for a Custom Editor p 289 10 4 Search and Replace The Workbench search tool is a fast index based global text search replace tool The scope of a search can be anything from a single file to all open projects in the workspace You can query for normal text strings or regular expressions Matches can be filtered according to location context for example show only matches occurring in comments Text can be globally or individually replaced and restored if necessary You can create working sets from matched files and you can save and reload existing queries Text retrieval is context sensitive to text selected in the Editor If no text is selected in the Editor an empty search dialog opens If text is selected in the Editor the retrieval is immediately initiated according to the criteria currently defined in the dialog To open the search dialog or to initiate a context sensitive search use CTRL 2 A scoping option from the global Search menu For more information open the search dialog and press the help key for your host 175 Wind River Workbench User s Guide 3 0 Linux Version 10 5 Configuring the Indexer for Source Analysis Editing navigating and code completion rely on source analysis done by the Indexer The resulting index is the basis for any source navigation and editing capabilities such as navigation between declaration and de
322. onfigure wrproxy to map client host tool accesses on a proxy port to a particular target The following example configures accesses to the proxy port 1235 to connect to the Telnet port of the host my_target telnet localhost 1234 Trying 127 0 0 1 Connected to localhost Escape character is create type tcpsock port 23 tgt my target pport 1235 ok pport 1235 Refer to create p 381 for details on create command arguments If you now connect to the proxy host at port 1235 you are connected to the Telnet port of my_target telnet localhost 1235 Trying 127 0 0 1 Connected to localhost Escape character is my target login 377 Wind River Workbench User s Guide 3 0 Linux Version Creating a wrproxy Configuration Script If you are typically using the same Wind River proxy configurations over time it can be useful to use a startup script to configure it rather than doing it manually each time You can cause wrproxy to read a startup script by invoking it as wrproxy s startupscript The script contains the commands that configure wrproxy as well as comments that begin with the character A simple startup script that configures the same port setup performed manually in the previous example might look like this This is an example of a wrproxy startup script Configure the proxy host port 1235 to connect to my target Telnet create type tcpsock port 23 tgt my_ target pport 1235 list the port
323. onnection Target Configuration for a Windows Host Reconfigure your kernel to enable RNDIS support as follows cd dist make linux xconfig Go to Device Drivers gt USB Support gt USB Gadget Support and select RNDIS Support Save and exit make linux build With the kernel correctly configured and running configure the usb0 interface for example ifconfig usb0 10 0 0 150 where 10 0 0 150 is the IP address assigned to the target 14 3 Configuring a Host for USB Connection The configuration procedure depends on the host OS Linux 2 6 Host Configuration Driver Support The host should have the g_ether module installed Refer to Target Configuration for a Linux Kernel 2 6 Host p 242 for details on installing the g_ ether module Interface Configuration For a Linux 2 6 host configure and test the USB interface as follows 1 Connect a USB cable with the host connector attached to the Workbench host and the peripheral connector attached to the target 2 Configure the USB interface on the host as follows ifconfig usb0 10 0 0 151 In this example 10 0 0 151 is the address assigned to the host on the USB connection 243 Wind River Workbench User s Guide 3 0 Linux Version 3 Verify that the connection is working with a ping command to the target ping 10 0 0 150 A successful ping of the target over the USB connection shows that your host and target are properly connected Windows Host Config
324. or Cooperative Debugging p 303 You must also install JDT as explained in 20 6 Installing JDT for Third Party Plug ins and Debugging p 321 Configuring a User Mode Connection for Cooperative Debugging If you do not have a user mode connection to your target create a new connection see 3 4 1 Creating and Configuring QEMU Connections p 61 for details Be sure to specify the port number if you started usermode agent with a port number If your target s root file system is accessible to the host computer on which you are running Workbench specify the root file system in the Target Server Options page under the Target Connection properties for your connection Right click your target connection in the Remote Systems view and select Properties to access this tab If however your target s root file system is not fully accessible to the host computer then you need to manually add the mappings under Object Path Mappings in the Target Connection properties for your connection Right click your target connection and select Properties to access this tab Be sure to configure 302 18 Debugging Projects 18 5 Java JNI Cooperative Debugging your object path mapping so that the native debugger can locate the object files for the following The java executable for example usr bin java Without access to symbols from the java executable the native debugger will not be able to detect any shared libraries that the Java application loads an
325. or disconnect terminates individual tasks threads if supported by process core Run control for thread resume suspend step Assign color to thread Select of the stack frame causes the editor to display instruction pointer and source for stack frame Perform same run control as on the thread Assign color to thread Assign corresponding color for parent thread When you start processes under debugger control or attach the debugger to running processes they appear in the Debug view labeled with unique colors and numbers Likewise breakpoints that are restricted to a particular process display that process s color number context in the Breakpoints and Editor views 291 Figure 18 2 Wind River Workbench User s Guide 3 0 Linux Version For example in Figure 18 2 three processes are shown in the Debug view The ball process in pink in the Debug view has been launched in debug mode and the program counter is shown in pink in the main routine The forkexec process is shown in blue It has stopped at a breakpoint set at the fork system call The breakpoint is shown as a solid circle and the program pointer is shown in blue with the number 0 in it Note that the number 0 is also shown with the parent process in the Debug view The third process the forked child process is shown in red in the Debug view The color assigned to a process or thread can be changed by right clicking the process or thread and selec
326. or the arch1 folder arch2 c implements int arch_specific void for arm_versatile_926ejs the only build spec enabled for the arch2 folder The inner build spec relationships are outlined in Table 12 1 Project Content and Build Spec Configuration of the Structure Directories Folders Files Enabled Build Specs project main c arch h common_pc and arm_versatile_926ejs project arch1 arch1 c common_pc only project arch2 arch2 c arm_versatile_926ejs only To build the project for the common_pc architecture 1 Highlight the project folder 2 Click the Set Active Build Spec button 3 Specify comon_pce as the active build spec for the project 208 12 Building Use Cases 12 5 Implementing Architecture Specific Functions Project Explorer 3 File Navigator ag 7 18 Arch specific Wind River Linux Platform 2 0 App v f Build Targets Common_pc glibc_std i686 wriit v i Arch specific Arch specific out Vv Arch specific recursive v Garchl arch1 c Vv arch disabled for common_pc glib arch2 c disabled for common_pc main c gt archl b arch2 A arch h l main c a The subfolder arch1 will be built and its objects will be linked into the project build target The arch2 subfolder will not be built and its objects will not be linked into the project build target because the comon_pc build spec is not enabled for arch2 Similarly if you set arm_versatile_926ejs as the active bu
327. or to override the templates packages or files within the development environment For instance Anew package added to a custom layer will be added to the build system A template within a custom layer will be used instead of the identically named standard template with the development environment Although custom layers can be placed anywhere they typically reside outside of both the development and build environments 3 11 Working with External Locations This section explains how to create projects and build usermode agent at external locations External locations are external to your workspace directory 3 11 1 Creating User Defined Projects at External Locations In the example of the ball program you imported existing files into a project in your workspace In some cases you may prefer to use the files in their existing location rather than for example maintaining copies of them in two separate locations 84 3 Creating and Debugging Platform Projects 3 11 Working with External Locations You can do this by creating a user defined project at the location of the source files The project still appears in the Project Explorer like any project in your workspace but the actual files including Workbench metafiles project and wrproject are located in a location external to your workspace directory 3 11 2 Building usermode agent at External Locations The following example shows how to build the usermode agent at
328. ore and modify the command and its environment You may wish to instrument the makefiles to print or capture trace and debug information on the fly You may want to experiment with build flags without endangering the existing build specs Here is an example of how to do this 1 In Workbench execute the build you wish to examine For example here is the build command for the mthread sample project as it appears in the Build Log echo building fsl_8548cds glibc_cgl_ DEBUG mthread o powerpc wrs linux gnu e500v2 glibc_cgl gcc g fno omit frame pointer mpowerpc mcpu 8548 pipe MD MP c DARCH ppc o fsl_ 8548cds glibc_cgl_ DEBUG mthread o mthread c 366 B Workbench and Command Line Techniques 2 Copy the command from the build log NOTE When you cut a long command from Workbench line breaks are inserted You may need to paste this text into a text editor and remove those line breaks and then re copy the line from the text editor 3 Open a shell as described in Setting the Environment with Workbench p 366 This gives you the compatible shell environment You can run the env command to see all the provided environment settings that your make commands will inherit If you are ona Windows host you will need to start a sh shell so that you have a proper make environment c WindRiver workspace mthread gt sh sh 2 04 4 Paste the command in the shell and press Enter sh 2 04 echo building fsl_8548cds gli
329. orkbench Preferences under General gt Target Operating Systems For existing projects you can verify the target operating system version by right clicking the project in the Project Explorer then selecting Properties then Project Info NOTE In most cases it is not possible to successfully migrate a project from one target operating system or version to another simply by switching the selected Target Operating System and Version In the Project Explorer and elsewhere the target operating system and version are displayed next to the project name by default You can toggle the display of this information in the Preferences gt General gt Appearance gt Label Decorations using the Project Target Operating Systems check box If you have multiple versions of the same operating system installed the New Project wizard allows you to select which version to use when creating a new project 11 5 Makefiles The build system uses the build property settings to generate a self contained makefile named Makefile For managed builds only one Makefile is created per build spec By default makefiles are stored in project directories if you specified an absolute Redirection Root Directory for details open the Build Paths tab and press the help key for your host they are stored there in subdirectories that match the project directory names The generated makefile is based on a template makefile named wrmakefile that is copied ov
330. orkbench adds the debug template automatically when you select a small file system To run the agent on your non emulated target 1 Boot the target 2 Open a terminal window on it via an Ethernet serial or USB connection You can run the usermode agent as a user or as root but the processes you launch from Workbench will run as the user that started the agent on the target 65 Wind River Workbench User s Guide 3 0 Linux Version Just to verify that you are on the appropriate target use uname a to display diagnostic information such as the kernel identification Virtual WRLinuxo ocalhost login root asswordt ind River Linux glibe_std standard 2 0 Last login Tue Sep 25 02 10 11 GMT 2007 on console jLast login Tue Sep 25 02 19 08 on console Wind River Linux glibc_std standard 2 0 root localhost root gt uname a JLinux localhost 2 6 21 7 hrt1 WR2 0ax_standard 1 PREEMPT Wed Sep 5 02 47 15 EDT 2007 armvStejl armvStejl armvStejl GNU Linux oot localhost root gt ff 3 Execute the usermode agent program usr bin usermode agent daemon If your target is using the uClibc library add the no threads argument You should see the terminal window display a WDB Agent 3 0 Ready message root localhostt root gt usr bin usermode agent daemon WDB AGENT 3 0 DAEMON READY c Copyright Wind River Systems Inc 2007 All rights reserved root localhost root gt J 4 Keep this window to your
331. ort arm_versatile_926ejs vmlinux symbols WR2 0ao_standard 6 7 8 9 4 Kernel Debugging Kernel Mode 4 7 Using QEMU for KGDB Kernel Debugging Back End TCP lt Processor ARM9 LE Select vy Use character based break Remote Host Settings Name IP Address localhost Port 1234 Advanced Options Backend Communication Log File Target Plugin Pass through Options pecs sss bf lt Back Next gt Cancel In the Kernel image field in the resulting Target Operating Systems Setting dialog box enter the name and path of the Linux kernel symbol file project_prj export boardName vmlinux symbols version_fsType for example Click Next as needed to reach the Connection Summary dialog Enter a name for the new connection Check Immediately connect to target if possible Click Finish The new connection appears in the Remote Systems view and the debugger opens onto the kernel running on the emulated target as in the following figure 111 Wind River Workbench User s Guide 3 0 Linux Version gt c002f818 c002f81c c002f820 c002f824 c002f828 c002f82c c002f830 c002f834 c002f838 c002f83c mcr pis Fri er cae mov pc r14 arm926_flush_user_cache_all mov r2 4 mov r12 0 __Tlush_whole_ cache mrc p15 0 pc c7 cl4 3 bne __flush_whole_cache tst r2 4 mcrne p15 0 r12 c7 c5 0 mcrme p15 0 r12 c7 c10 4
332. ory delimiter even for Windows hosts see the wrenv documentation for details For example Before wrlinux14 eval 02 export WIND_LX HOME S builtin InstallHome After wrlinux14 eval 02 export WIND _LX HOME net sharedLinuxPlatDevDir WindRiver You can now use this local Workbench and it will automatically use the data from the shared installation NOTE If you install an additional Wind River product in this local directory you must repeat the modifications to the local install properties file described in this example 373 Wind River Workbench User s Guide 3 0 Linux Version 374 Configuring a Wind River Proxy Host D 1 Introduction 375 D 2 Configuring wrproxy 377 D 3 wrproxy Command Summary 379 D 1 Introduction The Wind River proxy allows you to access targets not directly accessible to your Workbench host For example you might run the proxy server on a firewall and use it to access multiple targets behind the firewall The proxy supports TCP UDP and TIPC Linux only connections with targets Many different host tools and target agents can be connected A simple illustration of this is shown in Figure D 1 375 Wind River Workbench User s Guide 3 0 Linux Version Figure D 1 Wind River Proxy Example Target with m Serial Connection Workbench Host Target running with Target Server lt ai usermode agent a
333. ossibly other virus scanners as well For McAfee VirusScan 8 0 0i the problem is known to be resolved with patch10 which can be obtained from Network Associates As a workaround the problem can be avoided by making sure that McAfee on access scan is turned on and allowed to scan the TEMP directory as well as jar files More details regarding this issue have been collected by Eclipse Bugzilla 87371 at https bugs eclipse org bugs show_bug cgi id 87371 A 3 3 Resetting Workbench to Its Default Settings If Workbench crashes some of your settings could get corrupted preventing Workbench from restarting properly To reset all your settings to their defaults delete your HOME workbench 3 0 directory which will be recreated when Workbench restarts A CAUTION Remove the directory workbench 3 0 begins with a dot in your home directory not the directory workbench 3 0 in the Workbench installation directory 340 A Troubleshooting A 4 Fixing Indexer Issues A 4 Fixing Indexer Issues If you encounter troubles with source navigation tools for certain files resulting in missing or incorrect information in Include Browser Type Hierarchy Call Tree code completion Outline view and so on these files have very likely not been parsed or parsed with wrong include paths or symbols This section describes various solutions to indexer and source analysis issues A 4 1 Indexing Problems with Managed Projects If the files
334. ource project Basic community information on KGDB can be found at http sourceforge net projects kgdb Wind River has added several features to the mainline KGDB including Functionality that is tested on all supported boards Support for CPU auto detection Additional flags and test features added to the KGDB agent See Wind River Linux Platform User s Guide for information about using the command line to Debug with KGDB a Enable and disable KGDB Build your own cross architecture gdb 88 4 Kernel Debugging Kernel Mode 4 2 Background Steps and Concepts 4 2 Background Steps and Concepts This section briefly describes how to set up KGDB to work over subnets using agent proxy It describes how to mount the target file system And it explains how to disable KGDB which by default is enabled 4 2 1 Setting Up for kgdboe Between a Target and a Development Host KGDB over Ethernet is designed to work within single subnets since it is based on unicast UDP packets The connection is from the host over UDP to the target using the standard port 6443 for KGDB as sketched in the following figure Figure 4 1 Connecting from the Host to the Target for KGDB Subnet 192 168 99 Workbench Target Kernel IP 192 168 99 123 IP 192 168 99 77 lt gt PAARSR UDP Port 6443 kgdboe Development Host Target 4 2 2 Using agent proxy to Cross Subnet Boundaries for k
335. owser Right click a file in the File Navigator or the Project Explorer and select Include Browser Select Navigate gt Open Include Browser Use the Include Browser to see which file includes or is included by the file you are examining Use the buttons on the Include Browser s local toolbar to toggle between showing include and included by relationships Double click an included file in the Include Browser to open the file in the Editor at the include statement 10 3 The Editor The Editor is your primary view for editing and debugging source code The Editor is language aware and can parse C C Ada and Assembler files Many Editor features are configurable in the Preferences see Wind River Workbench User Interface Reference Editor Code Templates The Editor uses templates to extend code assist shortcut CTRL SPACE by inserting recurring patterns of text In the case of source code common patterns are for loops if statements and comment blocks Those patterns can be parameterized with variable placeholders that are resolved and substituted when the template is inserted into the text Unresolved variables can be link edited after inserting the template which means that the first unresolved variable is selected and all occurrences of this variable are edited simultaneously when you enter the correct text 173 Wind River Workbench User s Guide 3 0 Linux Version An example template might look like the
336. p gt Help Contents gt Wind River Documentation gt Eclipse Platform Documentation gt Eclipse Workbench User Guide gt Tasks gt Using the help system active view The view that is currently selected as shown by its highlighted title bar Many menus change based on which is the active view and the active view is the focus of keyboard and mouse input 1 To access the Eclipse glossary see Help gt Help Contents gt Wind River Documentation gt Eclipse Platform Documentation gt Eclipse Platform Plug inDeveloper Guide gt Reference gt Other reference information gt Glossary of Terms 393 Wind River Workbench User s Guide 3 0 Linux Version back end Functionality configured into a target server which allows it to communicate with various target agents based on the mode of communication that you establish between the host and the target network serial and so on build The type of project built managed build by default formerly flexible build and also a deprecated but still available standard managed build sometimes known as a standard build There are also user defined and disabled builds build output analysis Also referred to as discovery a mechanism to analyze build output to determine include paths symbols and the build scope affected files during a build run build scope The set of files built during a build run determining which source files are processed by the indexer Generally al
337. p in main optional but will be used in this example In the Connection tab Select your target connection in the Connection to Use drop down list 303 Wind River Workbench User s Guide 3 0 Linux Version 4 5 Specify the target path to the Java executable in Exec Path on Target for example usr bin java Click Edit in Environment and remove the LD_BIND_NOW entry Click Add to add an entry with a Name of LD_LIBRARY_PATH For Value specify the target path to the directory or directories on the target where the JNI library or libraries that your application will call reside In the Arguments tab Under Classpath enter the full target paths to both the directory where your Java classes for your application reside and the full path of the wrjnidebughelper jar file located where you copied the contents of the wrjnidebug directory Separate multiple paths by colons For example usr myapp usr myapp jni usr agent wrjnidebug wrjnidebughelper jar Note that these are the paths as visible to programs running on the target not host paths In the Debug Options tab Specify a debug port for Port Number This should be a unique number not used as a port by any other application including usermode agent and it should be greater than 1024 which is the last of the reserved port numbers and less than 65536 Check Enable Debugger Cooperative Mode for JNI Debugging In Java and Native Modes Once you have crea
338. pace Configuration in the Project Explorer A window opens in the central view 2 Click the Filesystem tab in the lower left of the new window The Filesystem Layout window opens See 5 5 2 Exploring the Target File System p 121 3 Click the Packages tab in the lower left of the new window The Packages window opens See 5 5 3 Handling Target File System Packages RPMs p 123 5 5 2 Exploring the Target File System This section explains how to work with the Filesystem Layout window that opens when you click the Filesystem tab in the lower corner of the Package Configuration window that opens from User Space Configuration The Filesystem Layout window lets you manage the file system in the export dist directory before Workbench creates the dist tar bz2 image This image is expanded into an NFS mount directory whereas you cannot NFS mount the export dist directory This image is also used by QEMU emulation see 5 6 Using Quilt to Manage Patches p 133 121 Wind River Workbench User s Guide 3 0 Linux Version The export dist directory is the file system image for all configured projects Regular targets take that image then create the dist bz2 tar image as the last step in creating the file system QEMU can use that image directly saving a step in expanding the file system into some location QEMU also can use the fakeroot information behind the export dist image to describe which files belong to root and such for
339. paces s ssssususeseururnnnururnnnnrernnnnnne 383 ERC EA A A I EE EE I E O oOo Aeria E A E Command line Importing Of Projects GOL Fl Introduction TURER PEE KEETE EEEE E E AE AEEA some 387 ES avis import Renee nccccccincnicenee ee SOS PRG ATR OT cugi hee Lights meena ere ree 388 OPUOTE cnore nane ems OO Starting usermode agent at Boot Time ccssceseesseesseeseseees B91 GES aiii asadadseanasiasiciacbasinibisasadinasinraadinindaasadsasiaciniies Re US sac ose sec E E E E E N T e EE maedeaens A TA BIT xxiii Wind River Workbench User s Guide 3 0 Linux Version xxiv PART Introduction 1 I oisin RNS 3 Wind River Workbench User s Guide 3 0 Linux Version Overview 1 1 Introduction 3 1 2 Starting Workbench 6 1 3 Recognizing Concepts in Common with Eclipse 7 1 4 Understanding Cross Development Concepts 11 1 5 Building Different Types of Linux Projects 12 1 6 Debugging in User Mode or Kernel Mode 14 1 7 What s New in Eclipse Related Changes 15 1 8 Finding Related Documentation 25 1 1 Introduction Wind River Workbench is an IDE development suite that lets you develop Linux target kernels and embedded applications very efficiently Workbench runs on various host operating systems Wind River Workbench User s Guide 3 0 Linux Version 1 1 1 Introducing this Guide This document is divided into the following parts Part I Introduction this chapter provides
340. placed by the C C Editor which has many of the same features such as code folding code completion parameter hinting and symbol highlighting New Editor features include Quick access via Ctrl O to the Outline view Auto closing of brackets Indentation correction by selecting source lines and pressing Ctrl I The Editor context menu contains many of these entries as well as many others including one for creating breakpoints directly in the Editor Other Editor issues include A change in syntax coloring similar to the Java editor Select C C gt Editor gt Syntax Coloring to configure other preferences Different language dependent editors for C C Assembly and Makefiles No separate editor for Ada Debugging still works but you must use the default text editor for Ada files ASM symbols no longer appear in the Outline view when you edit an assembly file For more information about the Editor see 2 4 Using the Editor p 40 as well as the Eclipse Workbench User Guide and the C C Development User Guide both available from the Workbench help system 1 Overview 1 7 What s New in Eclipse Related Changes 1 7 3 Using the Outline View The Workbench Outline view has been replaced by the Eclipse Outline view which has the same functionality but different icons For more information about the Outline view see Using the Outline View p 41 1 7 4 Source Analysis and Symbol Browsing Workbench has
341. platform project 1 Take the initial steps in creating the project to the point where you have named it and have reached the Configure Options screen In other words follow up to Step 5 in 3 2 Creating a Wind River Linux Platform Project p 54 Click Advanced gt gt Click Add to the right of the Templates box 2 3 4 Select boxes to specify which templates you want from the resulting list 5 Click OK See Table 3 3 for a description of the supplied templates The following supplied templates are in installDir wrlinux 2 0 wrlinux templates in the directories extra and feature Supplied Project Configuration Templates Template Purpose extra wrsnmp Enable Wind River SNMP and the SNMP Agent feature acpi Incorporate and start the logging daemon on kernel acpi enabled boards with cgl and std file systems feature busybox Add busybox package and set up the config file in busybox busybox config feature debug Add usermode agent to small filesystem projects feature directfbfusion feature glibc_discrete feature_glibc_small_extras feature ipmi feature prelink Allow multiple DirectFB applications to run at the same time within a session Replace busybox with a set of full featured discrete utilities such as in glibc_standard Replace busybox with a set of full featured discrete utilities such as in glibc_small Add IPMI package and enable support for IPMI controllers Modifies ELF shared libraries and ex
342. provide specialized registers called debug registers which can be used to specify an area of memory to be monitored For instance IA 32 processors have four debug address registers which can be used to set data breakpoints or control breakpoints Hardware breakpoints are particularly useful if you want to stop a process when a specific variable is written or read For example with hardware data breakpoints a hardware trap is generated when a write or read occurs in a monitored area of memory Hardware breakpoints are fast but their availability is machine dependent On most CPUs that do support them only four debug registers are provided so only a maximum of four memory locations can be watched in this way 259 Wind River Workbench User s Guide 3 0 Linux Version There are two types of hardware breakpoints A hardware data breakpoint occurs when a specific variable is read or written A hardware instruction breakpoint or code breakpoint occurs when a specific instruction is read for execution Once a hardware breakpoint is trapped either an instruction breakpoint or a data breakpoint the debugger will behave in the same way as for a standard breakpoint and stop for user interaction Adding Hardware Instruction Breakpoints There two ways to add a new hardware instruction breakpoint Inthe gutter grey column on the left of the source file right click and select Add Hardware Code Breakpoint Or double cli
343. r Workbench displays build output in the Build Console Disabled build 190 If you select Disabled build for a project or folder Workbench provides no build support at all This is useful for projects or folders that contain for example only header or documentation files that do not need to be built Disabling the build for such folders or projects improves performance both during makefile generation as well as during the build run itself 11 Building Projects 11 2 Configuring Managed Builds 11 2 Configuring Managed Builds Once your project is created you will see a Build Targets node inside it Your project contains the usual project files but you must create a build target manually Adding Build Targets to Managed Builds To add a build target to your project 1 Right click the Build Targets node and select New Build Target The New Build Target dialog appears By default the Build target name and Binary output name are the same as the project name but if you are going to create multiple build targets enter more descriptive names NOTE Your build targets must have unique names but you can use the same Binary output name for each one This allows you to deliver an output file with the same name in multiple configurations Workbench adds a build tool appropriate file extension to the name you type so do not include the file extension in this field 2 Choose the appropriate Build tool for your project then cl
344. r removed along with the total size of the file system currently available The Log tab reports on the number of packages files and so on 5 Configuring Wind River Linux Platforms 5 5 Working with Packages and Target File Systems 5 5 3 Handling Target File System Packages RPMs This section explains how to work with packages RPMs involving the target file system You can add remove import build and debug packages NOTE RPMs are not supported in small file systems such as glibc_small and uclibc_small because too many packages would be required and the file systems could no longer be considered small The Packages window displays a list of installed packages in the pane below the heading Installed Packages If you look in the pkglist file in the project_prj directory you will see the same list of files In Workbench each package is listed with its version number and the amount of space it takes You can move the cursor around the edges of the Package Configuration view and below the buttons to find the drag points that enlarge view sections To get more information on any package select it and look at the tabs at the bottom of the view The General tab gives a brief description of the package The Advanced tab gives an editable URL to the RPM for the package and states the architecture The Contents tab lists the various files and directories that comprise the package The Dependencies tab displays pack
345. r target in the Remote Systems view see 13 4 Establishing a Connection p 230 2 Launch one or more processes Using a launch configuration as described in 17 2 Creating a Launch Configuration p 266 Manually as described in 17 4 Launching Programs Manually p 275 By attaching to an already running process as described in 17 7 Attaching the Debugger to a Running Process p 283 3 Once the debugger has attached to your process it will appear in the Debug view The Debug view displays processes differently depending on whether the debugger is attached or not Figure 18 1 shows two instances of the mthread process the first instance does not have the debugger attached and the second does Debug View with Unattached and Attached Processes Debug 5S al vw PR m N k aR Y Qy mthread out tgt 147 11 36 202 Process or mthread out 3642 v Qs mthread out tgt_147 11 36 202 Process or V g mthread out 4213 Task Mode V imthread out 4213 Stopped Breakp main int argc 1 char argv OxBF _libc_start_main 0x00836E30 0x08048508 288 18 Debugging Projects 18 2 Using the Debug View 18 2 1 Configuring Debug Settings for a Custom Editor By default the Workbench Editor opens when the debugger stops in a given file To cause a different editor to open for particular file types modify the mappings in Window gt Preferences gt General gt Editor gt File Associations Modifying thes
346. r the launch The Projects to Build Tab The Projects to Build tab displays the projects that Workbench will build before launching the process in this configuration To disable this clear Window gt Preferences gt Run Debug gt Launching gt Build if required before launching 267 The Source Tab Wind River Workbench User s Guide 3 0 Linux Version To add to the list click Add Project select one or more projects from the dialog box then click OK To rearrange the build order select a project then click Up Down or Remove Note that the Projects to Build list takes project subproject relationships from the Project Explorer into account Thus when myLib is a subproject of myProj and you choose to add myProj to the list you cannot add myLib to the list as well because it will be built automatically when you build myProj Adding myLib as well would be redundant and is thus disabled The Sources tab displays the order in which locations will be searched for source files during debugging The search order is determined by a location s position in the list Configuring the Source Lookup Path is optional and is only necessary if the build target was compiled on a different host See 18 2 9 Changing Source Lookup Settings p 297 for more information about the source locator 1 On the Sources tab click Add to configure the source lookup path 2 Select the type of source to add to the lookup path 3 Once you ad
347. re breakpoints work by comparing the break condition against the execution stream Therefore they work in RAM ROM or flash Complex breakpoints involve conditions An example might be Break if the program writes value to variable if and only if function_name was called first 261 Wind River Workbench User s Guide 3 0 Linux Version 16 3 Manipulating Breakpoints Now that you have an understanding of the different types of breakpoints this section will show you how to work with them 16 3 1 Exporting Breakpoints To export breakpoint properties to a file 1 Select File gt Export gt Export Breakpoints then click Next The Export Breakpoints dialog box appears 1 Select the breakpoint whose properties you want to export and type in a file name for the exported file Click Finish 16 3 2 Importing Breakpoints To import breakpoint properties from a file 1 Select File gt Import gt Import Breakpoints then click Next The Import Breakpoints dialog box appears 2 Select the breakpoint file you want to import then click Next The Select Breakpoints dialog box appears 3 Select one or more breakpoints to import then click Finish The breakpoint information will appear in the Breakpoints view 16 3 3 Refreshing Breakpoints Right clicking a breakpoint in the Breakpoints view and selecting Refresh Breakpoint causes the breakpoint to be removed and reinserted on the target This is useful if something
348. rectly as shown below 77 Wind River Workbench User s Guide 3 0 Linux Version Error Log Tasks Problems amp Properties A memory 3 Build Console El Console cy e g alf al s a Monitor p R k Renderings en 0x117B0 0x117B0 lt Traditional gt 0x000117B0 2D2D2D2D 2D2D2D2D 2D2D2D2D 2D2D2D2D 0x000117CO 7C202020 20202020 20202020 2020207 0x000117D0 7C202020 20202020 20202020 2020207 0x000117E0 7C202020 20202020 20202020 2020207 Ox000117FO 70202020 20202020 20202020 2020207 0x00011800 7C202020 20202020 20202020 2020207 0x00011810 7C202020 20202020 20202020 2020207 0x00011820 7C202020 20202020 20202020 2020207 0x00011830 70202020 20202020 20202020 20202071 0x00011840 2D2D2D2D 2D2D2D2D 2D2D2D2D 2D2D2D2D 0x00011850 08200100 68240100 D8240100 D8240100 hh OF 04 If the box does not appear make sure the address you entered in the Memory view is that of the grid global variable 3 9 5 Setting and Running to a Breakpoint The box may be empty now but as the program runs characters representing different types of balls two zeros two signs and two asterisks appear in the box bounce around and collide with each other and with the walls The following procedure explains how to set a breakpoint and tell the application to run until the breakpoint is reached 1 Scroll down in main c past the three initialization for loops and set a breakpoint at
349. redirection root directory of Project Name_prj export dist which results in the creation at build time of Application BuildSpec Application Debug Application out within it 4 Build the application project Its output is placed in the redirection root directory such as configured in the above step For example mthread appears in the export dist directory 5 Define a connection to the target a Click the Define a connection button in the Remote Systems view toolbar 51 Wind River Workbench User s Guide 3 0 Linux Version 52 Choose the appropriate type of connection to create For real targets click Wind River Linux User Mode Target Server and specify the hostname of the target the port number to use for communicating with it and the location of the root file system See 3 4 Configuring Target Connections p 61 If you specify localhost and Port 4444 and follow the directions for real targets Workbench creates a QEMU connection for you but this requires more manual intervention Also the port number depends on the instance of QEMU that is running For an instance of 0 the port is 4444 for an instance of 1 it is 4544 for each increase in the instance number the port number increases by 100 For QEMU emulated targets for this tutorial click Wind River QEMU Linux User Mode Target Server Workbench simplifies many aspects of creating and using QEMU targets if you follow this approach Specify or verif
350. references gt Run Debug gt Console Console View Output To opena Console view select Window gt Show View gt Other gt Basic gt Console An example view is shown below 281 Figure 17 2 Wind River Workbench User s Guide 3 0 Linux Version Example Console View x Ex oh ft E rir lt terminated gt ala docs rh4 Remote Java Launch and Connect java 27767 Console output redirected to file C helloOutput log Listening for transport dt_socket at address 3456 Hello World error 1 now error 2 error 3 error 4 error 5 The highlights of the view shown include the following A title indicates which context process or task this view applies to A comment indicates that in this case console file logging is occurring and identifies the log file location click the filename to display it in the Editor The standard output shown in the example is Hello World and Bye for now and is in black the default color for standard output The standard error outputs shown in the example are the Show me error messages which are in red the default color for standard error output NOTE The output appearing in the Console view can appear in a different order than the order the output was produced if both output and error output are present The data from these two output types go through different channels and their transit times can be different Along with other standard function
351. remote host as if it were on a local disk Figure 12 1 Remote Build Feature Build Project Workspace lt a Network Drive rlogin or ssh build command lt gt build output P Remote Build Host i Workbench Network Connection In the case of a managed build Workbench generates the makefiles on the local machine running Workbench You map a path from the workspace root location to where generated makefiles will be correctly placed for builds on a remote machine When launching the build Workbench establishes a network connection rlogin or ssh to the build host The actual build command is executed there by using an intermediate script so you can set up the environment for the build process 12 7 1 General Requirements The Workbench host tools and chain must be installed on the remote machine The workspace root directory has to be accessible from both machines Only Eclipse projects under the workspace root can be remotely built An rlogin or ssh remote connection to the build machine must be possible 213 Wind River Workbench User s Guide 3 0 Linux Version 12 7 2 Remote Build Scenarios Local Windows Remote UNIX The workspace root directory should be located on the remote UNIX host and mapped to a specific network drive on Windows It may also be possible to locate the root directory on the Windows machine but then there
352. remove the installed package that you have selected 125 Wind River Workbench User s Guide 3 0 Linux Version 4 A dialog box appears that lists all the packages that will be removed the selected package and those packages it is required by and the total space taken by the packages Click OK to remove the packages The removed packages now appear in the Installable Packages list Select File gt Save and look in the pkglist file The packages will have been removed from the list in that file Installing Packages To reinstall the same packages do the following 1 Select them from the Installable Packages list and click Add A dialog box prompts you with the package s to be added and the total space involved If other packages are required for the package you have selected to be added they are shown in the dialog box as well Click OK The package s appear in the Installed Packages list You can add back the other packages that you removed then select File gt Save to restore the package configuration to its original condition If you look in the pkglist file all packages are now listed there Note that you can select multiple packages to add or remove at one time Installing Multi lib Packages and Exporting Their Sysroots To be able to use the Package Manager to set multi lib RPMs in the pkglist file 1 2 3 4 Create a Cavium platform project Add the following two lines to pkglist g
353. resent for Flash kernel build The kernel kernel clean Perform a clean on the kernel directory equivalent to make C build linux clean kernel config Configure the kernel using config kennel menuconfig Configure the kernel using make menuconfig kernel rebuild Rebuild the kernel kernel xconfig Configure the kernel using make xconfig ramfs A RAMFS file system Only present for Flash NOTE The Build Console displays the full make command and output when building the targets Target node A link to the template directory for the respective board See Wind River Linux Platforms User s Guide for more information Additional files Those in the following table are also included Additional Files in the Project Folder View File Name Contents creation log Detailed configure command output Makefile The Wind River Workbench generated Makefile for the project Makefile wr Make rules for the build targets used in place of wrmakefile Targets you specify Project gt Properties gt Build Properties gt Build Targets The project_prj directory in the host file system holds the actual project contents such as the dist and export folders This directory is identical to a build directory created by the command line tools and can exist outside of the workspace folder as for example when an existing project is imported into Workbench in which case the platform project has an Eclipse link to the actual location 6
354. rhaps some small amount of additional resources for testing and debugging Working on the Host You use the host as if you were writing code to run it You can manage project files to edit compile link and store multiple versions of your real time application code You can also configure the operating system that will run on the target Connecting the Target to the Host A number of alternatives exist for connecting the target system to the host but usually the connection consists of an Ethernet or serial link or both 1 5 Building Different Types of Linux Projects You can use Workbench to create platform kernel and file system projects and application projects for Wind River Linux Platforms Workbench has predefined project types for building Wind River Linux platforms and applications Additional project types are user defined applications and native applications Some of the major project types available to you are described in this section 1 5 1 User Defined Projects User defined projects are typically ones where the source code including makefile is provided by you or a third party You import or reference the source and use the makefile provided to build it Workbench provides the Project Explorer as a convenient way to access your build environment and the Build Console will display build output 1 Overview 1 5 Building Different Types of Linux Projects 1 5 2 Managed Projects Managed projects are those for which
355. riable or type The source editor presents the signature parameter hints and comment of any corresponding declaration in a tool tip A hunk is a contiguous group of source lines generated when the diff program is applied to compare files The patch program and the Quilt patch program based upon it use diff to create patches which are then internally represented as one or more hunks to apply to a file to patch it Source analysis information gathered by the indexer by parsing source code The index is the basis for any source navigation and editing capabilities such as navigation betweendeclaration and definition of methods showing included files in the Include Browser showing the call tree of functions and methods showing the type hierarchy of classes code completion in the editor hover information etc Java Development Toolkit provided by the Eclipse organization http www eclipse org and included with Workbench Java Native Interface is a means of calling non Java code native code from within a Java application 396 H Glossary kernel mode For Linux 2 6 and higher kernels two connection modes are supported kernel and user mode connections Kernel mode connections allow kgdb debugging of the kernel in a manner analogous to debugging applications in user mode kernel module A piece of code such as a device driver that can be loaded and unloaded without the need to rebuild and reboot the kernel launch configurat
356. rides the default patching model Quilt for project configuration Also the Configure Options screen defaults to Enable Quilt for new projects For recommended reading see Andreas Griinbacher s How To Survive With Many Patches or Introduction to Quilt http www suse de agruen quilt pdf 5 6 1 Setting Up Quilt to Manage Patches The following procedure exemplifies how to apply patches to a project rebuild the project and recognize the patches node within the rebuilt project 1 Create a Wind River Linux platform project Choose board rootfs or kernel as you like 2 Inthe Project Explorer right click the platform project and choose Add Link to Build Folder 3 Double click User Space Configuration under the platform project folder Reply Yes if asked if you want to initialize the prebuild PM package folder 4 Select a package on the left list for example boa or busybox The list of packages varies depending on which rootfs you have chosen 133 Wind River Workbench User s Guide 3 0 Linux Version 5 Under the Targets tab click the patch button and wait until ready The user package is extracted to your workspace and Workbench applies all patches 6 Right click the build folder below the project folder in the Project Explorer and choose Refresh A package version folder should appear for example busybox 14 1 or boa 1 4 1 7 Expand the package version folder The patches node appears 8 Righ
357. riority user and system tasks as well as the number of jiffies spent idle Hover your mouse over the Data Monitor toolbar to find the Zoom to Fit icon near the right most icon Click it to contain all the signals in the graph window Note that each signal has a unique color associated with it and this color is used for the lines in the graph The MiniMonitor view lists the current values of monitored signals the MiniDump view lists the value of each signal at each sampling By default when any new processes are started they are added to the monitor Note however that the buffer is reset when new signals are added so you lose the history of what you had been monitoring You can avoid this by for example monitoring only your own processes with appropriate command line options as described in Running the RKM Monitor from the Command Line p 307 For more information on the use of Data Monitor see the Wind River Workbench Data Monitor User s Guide 18 7 Run Debug Preferences For 308 more information see Wind River Workbench User Reference Debug View 19 Analyzing Core Files 19 1 Introduction 309 19 2 Acquiring Core Dump Files 310 19 3 Attaching Workbench to a Core File 311 19 1 Introduction You can configure your target system to save status and memory information on programs that crash for specific reasons For example you can specify that the information should be saved if a process exceeds some size or
358. rmation about the output file that you want to download and run during the launch 1 On the Main tab of the dialog box keep the default Connection registry and Connection to use settings or if you have more than one registry or connection defined in the Remote Systems view you may select a different one from the pull down list To create a new registry or connection type click Add 2 The Entry Point Arguments Priority and Stack size fields are only active when you are connected to a target To retrieve the connection specific properties from the target and adjust them if necessary click Connect Once your target is connected you can also click Edit to open the Advanced Options dialog box 3 To adjust the options field click Select The Options dialog box appears 17 2 4 The Projects to Build Tab You can specify that other projects should be built if necessary before launching the current project with the Projects to Build tab This only applies if you have checked Build if required before launching in the Window gt Preferences gt Run Debug gt Launching dialog box Click Add project to select one or more existing projects You can change the order in which they are built with the Up and Down buttons or click Remove to remove them from the list Then click Apply and Close When this configuration is launched those projects will first be built first if required in the specified order prior to launch of this pr
359. rnel p 113 to disable KGDB 4 2 5 KGDB and Safe Areas when Debugging the Kernel Due to the nature of KGDB debugging not all sections of the kernel can be safely or reliably debugged In kgdboe for example it is impossible to debug the Ethernet driver itself or any of its related services The kgdb8560 serial interface option in general has fewer dependencies but it still has sections where it cannot go and it runs slower than the Ethernet connection The On Chip Debugger OCD has the fewest restrictions on where is can debug since it does not rely on kernel services at all but does require additional hardware to support it Also there will be different behavior in parts of the kernel depending on the specific architecture or configuration If a common breakpoint location for example do_fork does not seem to work on a particular installation note it and find an alternative break location While these restrictions may discourage some people from employing interactive kernel debugging this feature does provide tremendous advantages over simple using printk in spite of these restrictions Here are some of the sections of the kernel code to specifically avoid Spin locks The Ethernet driver has several spin locks and if you attempt to step over one that is needed then the connection will lock up Printk This routine also has spin locks that will freeze the KGDB connection Simultaneous usermode agent connections The t
360. roject in workspace check box in the project creation dialog and then navigate to a path in a VOB In addition you should also redirect all build output files to the local file system by changing the Redirection root directory in the Build Properties gt Build Paths tab of your product All build output files such as object files and generated Makefiles will be redirected For more information about the redirecting build output and the redirection root directory open the build properties dialog press the help key for your host and see the Build Paths section 22 2 1 Adding Workbench Project Files to Version Control To add Workbench project files to version control without putting your workspace into a ClearCase view check in the following automatically generated files along with your source files Project File Description project Eclipse platform project file containing general information about the project wrproject Workbench project file containing mostly general build properties wrfolder Workbench project file containing folder level build properties located in subfolders of your projects wrmakefile Workbench managed build makefile template used to generate Makefiles makefile Workbench managed build extension makefile fragments e g some Platform projects For user defined projects all Makefile files need to be version controlled too 330 22 Using Workbench with Version Control 22 2 Using Workbench wi
361. rrent selected resource For example consider the command line usage of In lIn s tmp foo The link value is tmp and the link location is foo 129 Wind River Workbench User s Guide 3 0 Linux Version 130 Device creates a new character or block device below the selected resource Pipe creates a new pipe below the selected resource Add adds a single file from the local file system below the selected resource Add Folder adds a folder recursively from the local file system below the selected resource Remove deletes resources recursively below the selected resource If the resource is located in an rpm archive it is marked with an overlay icon If the resource is a previously added local resource it is removed from the tree Properties changes the properties of the selected resource s allowing you to change the umask the owner and group properties Revert to saved undoes all changes since the last save Revert resource undoes the change stored in the changelist for a single resource only if a changelist is available A changelist is a locally stored file project filesystem changelist xml that contains a list of changes to be used by the make fs command NOTE Revert resource only reverts the selected resource It does not perform a recursive revert You can use Revert all to revert all files and directories or you can manually select each resource one at a time and use Revert resource
362. rt dialog select C C gt Team Shared Index Click Next Mark other open projects if you want to export their indexes Select an export destination relative to the project root folder Use Insert variable if you need to store the index outside of the project in order to avoid absolute paths Make sure that the export destination is available by all team members access to an NFS or Windows Samba share Check the created settings project subdirectory including all files in this folder into your version control system to share it with other team members 187 Wind River Workbench User s Guide 3 0 Linux Version The team shared index will be loaded automatically whenever the project is opened No user interaction is required The file settings org eclipse cdt core prefs under your project folder holds the location of the team shared index slot indexer indexImportLocation Do not edit this entry unless the location of the index has moved outside the project and you are not willing to export the index again 188 11 Building Projects 11 1 Introduction 189 11 2 Configuring Managed Builds 191 11 3 Configuring User Defined Builds 195 11 4 Accessing Build Properties 196 11 5 Makefiles 197 11 1 Introduction Workbench offers several levels of build support or build types These build types are available from Window gt Preferences gt Wind River gt Build gt Build Properties where you can set Managed Disabled
363. s pais Adding a Device and Changing eae s 5 6 Using Quilt to Manage Patches ETEA 133 Dol Detting Up Quilt to Manage Patches sncnincnonimnconniomnenncas 19 S62 Using he tut Comins oniniioemnememunae 188 563 Using Quiltte View Patch Annotations siccsisnnccncsmmainananiunna Doe 5 6 4 Using Quilt to Import Source and SRPM Packages ccceeeee 136 5 6 5 Exporting and Importing Patches with Workbench cceeeee 137 5 7 Automating Target Deployment sssessesessecseseseseseseesesesessetseeee 138 PART Ill PROJECTS 6 Propecia Over cate res Te 6 1 Og CHI ac crnnsseninsiccnimninnnensinatamnnininaeedacmumaun 14a Wind River Workbench User s Guide 3 0 Linux Version 6 2 Workspace aiid Project Location sscssissevssssissacosessrersnsusnonssasnstopsvisnsntonsinbwisesvagentsics 144 63 Cresting New Projects cicera okin aan eones 145 6 3 1 Subsequent Modification of Project Creation Wizard Settings 146 62 2 Projecto and Application Code sci dsiisccaciienuonataiasicenentcaassations 146 6 4 Overview of Preconfigured Project Types sssscsssseresssssssseesaesssssseseseeeees 146 Wind River Linux Application Project sensassion 147 Wind River User Defined Propect cccrcancmanimmnanmnnammnmcnaianies 147 Wind River Linux Platiorm Project asinen 147 Wind River Linux Kernel Module Project sessisirvieinssissus 147 Customer Specific Linux Application Project sussressissbsris 147
364. s Wind River Linux Kernel Module Project Wind River Linux kernel module projects allow you to specify superprojects as well as subprojects You can specify a build make command suffixes for source files kernel root directory target architecture and a cross compile prefix Customer Specific Linux Application Project Customer Specific Linux application projects are built and reside on the host computer but run on the target kernel For these projects Workbench basically provides a generic managed build allowing you to derive your specific build specs 147 Wind River Workbench User s Guide 3 0 Linux Version from a set of predefined ones See 2 3 Creating a Cross Debug Mode Project p 37 for a tutorial on building this type of project NOTE To enable Customer Specific Linux projects select Window gt Preferences gt Wind River gt Capabilities Expand Development Check Customer Specific Linux Development Click Apply Customer Specific Linux Kernel Project Customer Specific Linux kernel projects let you configure customize or scale and build a Linux kernel to run on the target These projects basically wrap the typical Linux kernel CLI build Because your subsequent Linux application projects will run on the Linux kernel on the target this is often a necessary first project to build unless you already have a target kernel User Defined Project User defined projects do not use Workbench build support or pr
365. s icons in the Console view toolbar allow you to pin the context to a Console view select among different Console views and create new Console views Select a specific process or task for a Console view by clicking the down arrow next to the Display Selected Console icon and making your selection Click Pin Console to keep the Console view associated with that context Select Open Console gt New Console View to create additional Console views Refer to http help eclipse org for further details on the Console view or press CTRL F1 in the Console view for online help 282 17 Launching Programs 17 7 Attaching the Debugger to a Running Process 17 7 Attaching the Debugger to a Running Process You can attach to a running process to debug it as follows 1 Inthe Remote Systems view expand Processes for the target connection and locate the process you want to attach to 2 Right click the process and select Attach to Process If you compiled the process with debug symbols the symbols should load to allow source level debugging Right clicking a process executable from the Project Explorer and selecting Run Process on Target or Debug Process on Target opens the appropriate launch configuration dialog box See 17 2 Creating a Launch Configuration p 266 for more information about working with these dialog boxes This section explains how to launch processes from the Remote Systems view 1 Right click Processes then select R
366. s 2340 Use various additional sysctl supported commands to work with this module sysctl a shows all variables sysctl dev testmod timeout queries variables sysctl dev testmod timeout 5000 sets variables You can also query and set variables using proc sys dev testmod timeout When you are finished remove the module with kgdb _target_ rmmod testmod ko 4 6 7 Creating a Custom Kernel Module To use Workbench to create a custom kernel module project 1 2 Select File gt New gt Example gt WR Linux Kernel Module Project Give the project a name for example custom_klm Click Next To attach this project to a platform project within Workbench leave these values empty To connect this custom kernel module to a platform project outside of Workbench a Fill in that Linux Kernel Directory its ARCH and its CROSS_COMPILE value You can always edit these values later via the project s Build Properties b Click Finish when done Right click the project and select Import gt General gt File System NOTE We are going to borrow the code for this kernel module from an existing Wind River Linux sample project You can import your own module code if you have some available Browse to installDir wrlinux version samples moduledebug_2_6 Select the files bpHere c and moduledebug c and click Finish 109 Wind River Workbench User s Guide 3 0 Linux Version 6 You can now build this project
367. s derived so ClearCase will not try to add the build output files to source control If you use a different builder you may have to configure it to mark resources as derived 331 Wind River Workbench User s Guide 3 0 Linux Version 332 PART VIII Reference Troubleshooting ssirisiiiiisiriririsisssssisdisorinnriiaddsasas 335 Workbench and Command Line Techniques 365 Installing on Network Servers eeeeeeeeees 371 Configuring a Wind River Proxy Host 375 Command line Updating of Workspaces 383 Command line Importing of Projects 387 Starting usermode agent at Boot Time 391 NGI SSAEG secasscscsanenntiniiananaiuraunicabonanadandienicankinaisuas 393 333 Wind River Workbench User s Guide 3 0 Linux Version 334 Troubleshooting A 1 Introduction 335 A 2 Startup Problems 336 A 3 General Problems 339 A 4 Fixing Indexer Issues 341 A 5 Hints about Performance and Breakpoints 344 A 6 Error Messages 346 A 7 Error Log View 355 A 8 Error Logs Generated by Workbench 355 A 9 Technical Support 363 A 1 Introduction This appendix displays some of the errors or problems that may occur at different points in the development process and what steps you can take to correct them It also provides information about the log files that Workbench can collect and how you can create a ZIP file of those logs to send to Wind River support If you are experi
368. s eter ted ives 6G in oo Views 1 Overview 1 3 Recognizing Concepts in Common with Eclipse The term view refers to the individual panes within a window in Figure 1 1 these include the Project Explorer view on the top left side of the screen the Outline view on the top right the Remote Systems view on the bottom left and the stacked view on the bottom right with the title Tasks There are two rules to consider when using views 1 Only one view such as the Editor view see Editors p 10 can be active at a time The title bar of the active view is highlighted 2 Only one instance of a type of view can be present in a perspective at a time NOTE Multiple editors can be present to view multiple source files Many views include a menu that you access by clicking the down arrow to the right of the title bar This menu typically contains items that apply to the entire contents of the view rather than a selected item within the view To open a view and add it to the existing perspective see Perspectives p 10 select Window gt Show View Select the desired view from the list or select Other to display expandable lists with more choices The view is added at its default location in the window and you can move it if you want see Moving and Maximizing Views p 9 Tabbed Notebooks Several views can be stacked together in a tabbed notebook often the result of opening additional views For example the Tasks view at th
369. s include Expressions History Memory Registers and Variables You can also create your own perspectives 1 Arrange the views in the window by opening any required views and moving them to an appropriate location 2 Select Window gt Save Perspective As and enter a name for your custom perspective 3 Click OK Workbench saves your customized perspective in your workspace The button in the shortcut bar displays the new name when you hover the cursor over it Switch back to the Application Development perspective by selecting it on the top right side and resetting it with Window gt Reset Perspective It should once again appear as shown in Figure 1 1 1 4 Understanding Cross Development Concepts Cross development is the process of writing code on one system known as the host that will run on another system known as the target Cross development allows you to write code on a system that is readily available and familiar such as a PC running Linux or Windows and produce applications that run on hardware that you would have no other convenient way of programming such as a chip destined for a mobile phone Wind River Workbench User s Guide 3 0 Linux Version Hardware in a Cross Development Environment A typical host is equipped with large amounts of RAM and disk space backup media printers and other peripherals In contrast a typical target has only the resources required by the real time application and pe
370. s toolbar icon for Remove All Terminated Launches See 16 1 Introduction p 257 for breakpoints assigned to which debugger Also see http download eclipse org tools cdt docs tutorials debug_tutorial cdt_w_deb ug htm 36 2 Introducing Application Development 2 3 Creating a Cross Debug Mode Project 2 3 Creating a Cross Debug Mode Project 2 The Project Explorer lets you visually organize projects to reflect their inner 2 dependencies and therefore the order in which they are compiled and linked In this section you create a project folder and import existing source files into it This project uses cross debug mode in which the output runs on an architecture different from your development architecture The example supplied uses a PowerPC target and associated cross development tools This section and the rest of this chapter use the ball sample program written in C This program implements a set of ASCII character balls bouncing in a two dimensional grid As the balls bounce they collide with each other and with the walls The following chapter displays the Memory view showing the balls see 3 9 5 Setting and Running to a Breakpoint p 78 The balls appear to move because you set a breakpoint with the property continue on break at the outer move loop and you set a watch on the global grid array variable 2 3 1 Checking and Setting Your Build Specs Sysroots which contain one or more build specs provide the libraries head
371. scsvsssvissisosssessnsivusneessaanstopenisisnteseisipivenvaneetsies 191 Adding Build Targets to Managed Builds c ccsessessseeseseeesesseneees 191 Modiiying Build Tangels siena nn a 192 Leveling ADUTE S snaru a N 194 Understanding Managed Build Output aicciuianicunsuiescavuns 194 11 3 Configuring User Defined Builds osonscscssssiscassnnicssennanens 195 Hd Accessing Build Praperties piss ssnnsnscisiemunssnsnimawennnaumensiscnmnan 196 xii 11 5 Contents 114 1 Workbench Global Build Properties o icicisccsscunsssiniairscsiavsrsnstantesriereacine ita2 Projectspecitic Build Properties cccccnsucnniccauniniinnnionin WAS Folder File and Build Target Properties cisini 11 4 4 Multiple Target Operating Systems and Versions ssssseseeeeeees MSKGRIES cccincicimnnioncimuumnn maaan nannunaol mie NS Dirven File Mild Suppor acccinccncnieneemmnanniiammaksnon The Yace Example siisii idl General Approach a 196 196 197 Building Use Cases 12 1 12 2 12 4 12 5 12 6 12 7 BORIC eria E Adding Compiler Flags Adding a Compiler Flag by Hand PE TEE O T Adding a Compiler Flag with GUI Assistance Building Applications for Different Target Architectures ssssssssseees Creating Library Build Targets for Testing and Release sssssssesssssssesseees Implementing Architecture Specific Functions cssssssesseesssesseeesseseeseeseees 12 6 1 Custom Build T
372. services 1 218 Create a workspace directory for a Linux user for which you have log on privileges or create a new one such as wbuser This is the workspace that you want to export For example in your home directory you could create a subdirectory called remote_workspace NOTE This workspace cannot be used remotely by Windows and simultaneously by the local Linux Workbench installation So either you must not be running Workbench on the Linux host or it must be using a different workspace than the one you specify here As the root user start the Samba configuration tool usr bin system config samba Select Preferences gt Samba Users and click Add User Add the Linux user that has the workspace to be exported Enter a password for the user This is the Samba password and can be different than your Windows or Linux password Click OK Select Preferences gt Server Settings 12 Building Use Cases 12 7 Developing on Remote Hosts a Inthe Basic tab enter a workgroup that is accessible from Windows for example workgroup b Inthe Security tab you should be able to leave the settings as User authentication mode Yes for password encryption and No guest account c Click OK 6 Click Add to add a Samba share This is the workspace that you want to export For Directory enter the full path to the workspace to export for example home wbuser remote_workspace For Basic Permissions check Read Write
373. sole VIEW oecrccsunvihnini torina ESA Bee Tien ah be sane ra Tr Oe neat ere er cera ee renene err Tet ernst Attaching To the Kernel srerrusnnsmnuncn in Suggested Work lon sinisas iieis Fatrou ion ensisi R 2 18 2 1 Configuring Debug Settings for a Custom Editor 0 0 0 xvii 268 268 269 269 269 270 270 270 271 271 272 275 281 281 281 283 284 285 18 4 18 5 18 6 18 7 Wind River Workbench User s Guide 3 0 Linux Version 182 2 Understanding the Debug View Display scciciscosciiarnmauciin 290 How the Selection in the Debug View Affects Activities 00 291 Monitoring Multiple Processes i nnnuiouunsaiinwaniuniciranmaaes 291 Colored Views persiarra oi 293 1849 Stepping Through a Pai ge scashssseiesanjeacocttineamcrsicnea ea ccsionieniais 293 Bas Tome Debut Molis sununineiiea a E aia 294 18 2 5 Setting and Recognizing the Debug Mode of a Connection 295 182 6 Debugging Multiple Target Connects sasssssireuirdiiirsiriniriirsis 295 18 2 7 Disconnecting and Terminating Processes scsssssssesssseesseteeseseens 296 18 2 8 Using the Debug View to Send Signals to Processes cccccesseeeees 296 Resuming Suspended Processes cai adurcaucdnvecnudioanales 296 Editing a Frocess s Signal Configuration ss miccureaducouinodniien 297 18 29 Changing Source Lookup Settings cic puicnsiaiioincaeeiicanans 297 Stepping Through Assembly Code ssirisisisorisrssrsisives
374. specific port instance 456 usermode agent comm tipc tipcpt 123 tipcpi 456 Daemon mode The daemon option lets the usermode agent become a daemon after all initialization functions are completed The output message if any are still reported on the device where the process has been started Environment Inheritance The inherit env option makes all the child processes inheriting the environment from the parent environment Since the usermode agent is the father of all the processes then the processes will inherit the shell environment from which the usermode agent has been launched 253 Wind River Workbench User s Guide 3 0 Linux Version No Thread Support Linux Thread Model Only The no threads option allows you to use the usermode agent on a kernel using Linux threading model even if the libpthread library is stripped Basically the libpthread library is used by the usermode agent to detect thread creation destruction and so on On a kernel using Linux threading model if the libpthread library is stripped then the multithread debug would not be reliable so by default the usermode agent exit if this option is not set to ensure a reliable debug scenario This option is useless if your kernel is running using NPTL threading model Other Options The v option displays version information about the usermode agent that is build and release information The V option set the usermode agent to run in verbose
375. ssssssscsscessees Core File Analysis Ending the Session PART VII UPDATING 20 21 integrating PU DOU sssrinin iaaa aaa QUT Tirod tkhi N enosesusa eiaa 20 2 Finding New Plug ins soc ccccessascsscssssnseccssanssssssnssuesciesancrsesscesucesnancuecossanoccastancaesistsns 20 3 Incorporating New Plug ins into Workbench ssssessseeesssssseeeeessssseseceesssssseeee 20 3 1 Creating a Plug in Directory Struct r sscsrosssmirnricrsiisiaiii 20 32 Installing a Nee ates Plugin sososoenrina Downloading the IBM Rational ClearCase Plug in Adding Plug in Functionality to Workbench scssessecsessseeseeseesnees 20 4 Disabling Plug in Functionality csssssssssssssssssssssesessessessessssssssssssssesssesessees 20 5 Managing Multiple Plug in Configurations sccsesesees PP 20 6 Installing JDT for Third Party Plug ins and Debugging Using Workbench in an Eclipse Environment ccssessseenes 2L Taa O e 21 2 Recommended Software Versions and Limitations ss sssssssessssessssessessesssse lt Tava Runbiine VOrSION venerreneao iioa ian Bod 324 Eclipse Version eecccccccccccccccccce xix 309 309 310 311 312 312 315 315 316 316 316 317 318 319 320 320 321 323 324 Wind River Workbench User s Guide 3 0 Linux Version 21 3 Getting Up Workbench ccsccsesncssisssasenesesscousnavsesavareussscsnecisiarsisesnstst
376. successfully build a Java application in Workbench and now wish to debug it on a target Prepare the Target The target must have a supported Java runtime environment see your Release Notes for details and be running the Wind River usermode agent 1 If your target does not have a usermode agent executable on it copy one to it Source and binary files for usermode agent may be found in your Workbench installation directory under the linux 2 x usermode agent 2 0 subdirectory NOTE If you have both a 1 1 and 2 0 subdirectory use the contents of the 2 0 directory for remote Java launches If there is no binary available for your target refer to 3 11 Working with External Locations p 84 for an example of a way to build usermode agent from the source files with Workbench 2 Run the usermode agent on the target for example target_ usermode agent p 4321 amp In this case a port is specified so that additional instances of usermode agent can be run on the target for other purposes To set usermode agent to run when the target boots see G Starting usermode agent at Boot Time NOTE If you specify a port when invoking usermode agent you must also specify the same port number when you create the target connection from the host This should be a unique number less than 65536 and not used as a port by any other application Also it should be greater than 1024 which is the last of the reserved port numbers 3 Make
377. suppose you have removed perl or python using perhaps the Workbench File System Layout tool see 5 5 4 Using the File System Layout Configuration Tool p 129 Now suppose you want to install one of the 150 or so packages that happen to include perl or python scripts Those packages will fail to install because they have a rigid dependency on perl or python If this is a dependency that does not concern you you can use Force Install to ignore it Also you can use Force Install to get around dependencies that are not quite correct allowing you to avoid debugging and fixing packages Example use of Force Install 1 Erase remove iptables ipv and then iptables which it requires a First choose iptables ipv6 because of the dependency b Select Erase from the context menu c Choose iptables then Erase Notice that you cannot install iptables now whether you use Install or Force Install because iptables ipv6 requires it but is not itself installed 2 Verify that line 62 of installDir wrlinux 2 0 scripts launch_script sh reads launch_execute rpm_force RPM iv ignorearch nodeps force 3 Now use Force Install to install iptables It should succeed Removing Packages For example you could do the following to remove packages 1 Select the Dependencies tab 2 Select a package such as openssl from the Installed Packages list that contains entries in both the Required and Required By windows 3 Click Remove to
378. t Open Shell and then ed build linux version type The shell now opens automatically in the project_prj directory 3 Create a link to all kernel modules within the Linux kernel and place them in this directory foreach file find name ko print foreach 1n s file foreach end 4 Add this object path mapping to your KGDB connection a Right click the specific KGDB target connection entry b Select Properties gt Object Path Mapping c Click Add d Leave the Target Path empty e Browse for Host Path select projectname_prj build linux version type f Click OK for the path then OK for the target connection s properties dialog 5 Make the connection to the target If that connection is already active disconnect and reconnect to assert the new mappings You can now place breakpoints in any kernel module source have it planted by Workbench hit those breakpoints and have Workbench always be able to bring up the correct source file 107 Wind River Workbench User s Guide 3 0 Linux Version 4 6 6 Using the testmod Enhanced Sample Kernel Module This sample kernel module demonstrates several features 108 A simple kernel module The file main c initializes and removes the module Parameter passing A kernel timer The file timer c manages the timers Using sysctl to change the timeout The file settings c manages the sysctl bindings Create a new kernel module project a S
379. t The easiest way to launch the registry is to start and quit Workbench However you can also launch the wtxregd program from the command line For more information about wtxregd see Help gt Help Contents gt Wind River Documentation gt References gt Host API and Command References gt Wind River Host Tools API Reference 2 To use the remote registry on another host right click in the Remote Systems view see 13 2 The Remote Systems View p 228 then select New gt Registry from the context menu 3 Inthe dialog that appears enter either the host name or the IP address of the remote host Workbench immediately attempts to connect to the remote registry If the host is invalid or if no registry is identified on the remote host this information is displayed in the Remote Systems view A valid connection will display the registry in the Remote Systems view and any active connections will be shown Connect to the target just as you would to a target in your local registry 238 13 Connecting to Targets 13 6 The Registry 13 6 3 Shutting Down the Registry Because other tools use the registry it is not automatically shut down when you quit Workbench Before updating or uninstalling Workbench or other products that use the registry it is advisable to shut down the registry so that the new one starts with a fresh database To shut down the registry On Windows right click the registry button in the system tray an
380. t Workbench then delete the metadata directory in your original Workbench installation installDirlworkspace metadata Restart Workbench using your original workspace The metadata directory will be recreated and should work correctly Because the metadata directory contains project information that information will be lost when you delete the directory A Troubleshooting A 2 Startup Problems To re create your project settings reimport your projects into Workbench File gt Import gt Existing Project into Workspace workbench 3 0 Directory Is Corrupted 1 To test if your homeDirl workbench 3 0 directory is the source of the problem rename it to a different name then restart Workbench NOTE Make sure you rename the homeDir workbench 3 0 directory not the installDir workbench 3 0 directory If Workbench starts successfully exit Workbench then delete the old version of your homeDirl workbench 3 0 directory the one you renamed Restart Workbench The homeDir workbench 3 0 will be recreated and should work correctly Because the workbench 3 0 directory contains Eclipse configuration information any information about manually configured Eclipse extensions or plug ins will be lost when you delete the directory To make them available again within Workbench re register them Help gt Software Updates gt Manage Configuration Registry Unreachable Windows When Workbench starts and it does not detec
381. t a default Wind River registry it launches one After you quit Workbench the registry is kept running since it is needed by all Wind River tools You do not need to ever kill the registry If you do stop it however it stores its internal database in the file installDir workbench 3 0 foundation wind wtxregd hostname If this file later becomes unwritable the registry cannot start and Workbench will display an error 337 Wind River Workbench User s Guide 3 0 Linux Version Xi Unhandled Exception x Serious intemal error occurred while executing wtxread exe Shutdown Error log has been generated and saved as Continue S workbench 2 2 foundation 4 0 34x86 wtxreqd Problem 20041007 133542 log If you want to file bug report please e mail this file to support wrs com You may try to click Continue and attempt to save all unsaved data before shutting down the program Unfortunately the seriousness of this error may result in some loss of data If you Continue it is recommended that you save any unsaved data and exit the program 5 immediately after Details gt gt This error may also occur if you install Workbench to a directory to which you do not have write access such as installing Workbench as an administrator and then trying to run it as yourself Workspace Cannot Be Locked Linux and Solaris If you start Workbench and select a workspace you may see a Workspace Cannot be Locked error Workspace Cannot
382. t and modify breakpoints 3 9 5 Setting and Running to a Breakpoint p 78 and 3 9 6 Modifying the Breakpoint to Execute Continuously p 80 53 Wind River Workbench User s Guide 3 0 Linux Version 3 1 4 Creating External Projects and Using Layers and Templates In addition to creating running and debugging applications you can 1 Create projects and build usermode agent at external locations which are external to your workspace directory see 3 11 1 Creating User Defined Projects at External Locations p 84 and 3 11 2 Building usermode agent at External Locations p 85 Use layers and templates to customize builds for purposes such as adding packages creating new BSPs ensuring that custom builds can be easily repeated and completely separating custom code from the installed Wind River development environment see 3 10 1 Adding Templates to a Project p 82 and 3 10 2 Adding Layers to a Project p 83 3 2 Creating a Wind River Linux Platform Project To create a new platform project 1 54 Right click in a blank space in the Project Explorer and select New gt Wind River Linux Platform Project When you use Workbench to create a new Wind River Linux Platform project the choices you see in the project wizard are based on your installation Enter a name for the project and click Next To follow the tutorial and see the same results use ball for the project name You may have to delete the ball project cre
383. t click the patches node and find the Quilt menu You can expand the patches node to see the patches applied for this package You can further expand the files that are part of a patch and you can for example select a source file such as boa c and use the Quilt menu s Annotate File to annotate it See 5 6 3 Using Quilt to View Patch Annotations p 135 5 6 2 Using the Quilt Commands Quilt tracks changes made by each patch which can be applied un applied refreshed and so on The patches are managed as a stack and applied incrementally on top of the base directory tree plus all preceding patches They can be pushed and popped to and from the top of the stack By default most commands apply to the topmost patch on the stack The Quilt menu entries are GUI enactments of the basic commands that you can find in installDir wrlinux 2 0 wrlinux host tools share man man1 quilt 1 To make this man page available to the man command edit etc man config or put the path in the MANPATH variable At the command line level Quilt commands are similar to CVS commands The menu entries include the following listed alphabetically Add File to Top Patch Add one or more files to the topmost or named patch Add New File to Top Patch Add a new file Annotate File Display an annotated listing of the specified file showing which patches modify which lines You can also hover the cursor over a patch indication in the left margin of the
384. t clicking the target connection selecting Properties selecting the Target Server Options tab then clicking Edit Select the Logging tab then check the box next to Enable WTX logging and provide a filename and maximum file size for the log Click OK Enable this log from the command line using the Wd path filename and Wm maximumFileSize options to the target server executable For more information about target server commands see Wind River Documentation gt References gt Host API and Command References gt Wind River Host Tools API Reference gt tgtsvr What is Logged Each WTX request sent to the target server For more information about WTX services see Wind River Documentation gt References gt Host API and Command References gt WTX Reference gt wixMsg What it Can Help Troubleshoot Debugger back end Target Server Target Agent Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 8 11 Remote Systems View Debug Tracing Log How to Enable Log You must enable this log before you start Workbench Do this by adding these parameters to the Workbench executable command debug vmargs Dcom windriver ide target DEBUG 1 362 A Troubleshooting A 9 Technical Support What is Logged Remote Systems view s internal debug errors What it Can Help Troubleshoot Inconsistencies in the debugger back e
385. t errors and warnings that display an error dialog box in Workbench Additional warnings and informational messages What it Can Help Troubleshoot Unexpected error alerts Bugs in Workbench java code Bugs involving intercomponent communication Supported Yes A 8 3 DFW GDB MI Log The GDB MI log is a record of all communication between the debugger back end the debugger framework or DFW and other views within Workbench including the Remote Systems debugger and OCD views How to Enable Log This log is always enabled What is Logged All commands sent between Workbench and the debugger back end What it Can Help Troubleshoot Debugger and Remote Systems view related bugs 357 Wind River Workbench User s Guide 3 0 Linux Version Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 8 4 DFW Debug Tracing Log How to Enable Log This log is always enabled What is Logged Internal exceptions in the debugger back end What it Can Help Troubleshoot The debugger back end Supported No You may send this log to Wind River support but no instructions are provided for how to interpret the information contained in it A 8 5 Debugger Views GDB MI Log How to Enable Log You must enable this log before you start Workbench Do this by adding these parameters to the Workbench executable comm
386. t from its structural logical context as a subproject in which case it will be moved to the root level as a standalone project in the Project Explorer Deleting Project Nodes To delete a subproject which might potentially be linked into any number of other project structures you first have to either unlink right click it and press Delete all instances of the subproject or get a flat view of your workspace To do this open the drop down list at the top right of the Project Explorer s toolbar and choose Hide gt Project Structure This hides the logical project organization and provides a flat view with a single instance of the sub project that you can then delete by pressing Delete again When you delete a project you are asked whether or not you want to delete the contents If you choose not to delete the contents the only thing that happens is 167 Wind River Workbench User s Guide 3 0 Linux Version that the project and all its files are no longer visible in the workspace there are no file system changes 9 6 4 Manipulating Target Nodes Target nodes cannot be copied or moved These are purely logical nodes that make no sense anywhere except in the projects for which they were created If you copy or move entire projects however the target nodes and generated build targets beneath them are also copied Deleting a target node also removes the convenience node that represents the generated physically existing b
387. t show this dialog again box When you work with Downloadable Kernel Modules or user built kernel images just let the build proceed If the Link error message appears either disconnect your target or unload all modules then rebuild or relaunch A 6 4 Remote Systems View Errors For information about the Remote Systems view see 13 Connecting to Targets 349 Wind River Workbench User s Guide 3 0 Linux Version Troubleshooting Connecting to a Target If you see the following error w Cannot connect Error connecting to vxsim0 Registry localhost Failed to connect debugger Failed to create target control Or if you have other trouble connecting to your target try these steps 1 350 Check that the target is switched on and the network connection is active Ina terminal window on the host type ping n n n n where n n n n is the IP address of your target Verify the target Name IP address in the Edit the Target Connection dialog box right click the target connection in the Remote Systems view then select Properties Choose the actual target CPU type from the drop down list if the CPU type in the Edit the Target Connection dialog box is set to default from target Verify that a target server is running If it is not a Open the Error Log view then find and copy the message containing the command line used to launch the target server b Paste the target server command line into a terminal
388. t with a TIPC address that is different from target TIPC addresses using tipc config see 15 2 1 Installing the TIPC Kernel Module p 247 The wrproxy command is located in installDirlworkbench version foundation version x86 linux2 bin Enter the following command on the TIPC capable network host that is to serve as the proxy between Workbench and the TIPC target wrproxy amp You can also use the p port option to specify a different TCP port number for wrproxy to listen to default 0x4444 the V option for verbose mode or the h option to get command help NOTE If you specify a port other than the default port for the proxy then you must specify the same port when configuring the target server as described in 15 4 Configuring Your Workbench Host p 250 Figure 15 2 illustrates a configuration in which the proxy agent runs on the same host as Workbench Figure 15 3 illustrates a configuration in which the proxy agent runs on one of the nodes in a cluster Another example might be a separate host that runs wrproxy between the targets in the cluster and the Workbench host 248 15 Connecting with TIPC 15 3 Configuring a TIPC Proxy Figure 15 2 TIPC Configuration with WDB Proxy Agent on Workbench Host Workbench Host tgtsvr UDP wrproxy lt q TIPC p TIPC Target Figure 15 3 TIPC Configuration with WDB Proxy Agent on Cluster Target Cluster with TIPC Interconnections TIPC
389. ta Monitor to the RKM monitor invoked as shown you will only be able to view root memory usage Attaching Data Monitor to the RKM Monitor To view remote kernel metrics in the Workbench Data Monitor GUI 1 Withrkm_monitor running on the target start Data Monitor in Workbench by clicking the Launch Data Monitor icon in the main toolbar approximately between Search and Project in the menubar 2 Select the correct target connection from the pull down menu 3 Enter 127 as the index value This is the default for Data Monitor with the RKM monitor Use a different index number if you want to run another monitor on the target this allows you to run multiple monitors on the target selecting them by index number 4 Click OK A Data Monitor window opens 307 Wind River Workbench User s Guide 3 0 Linux Version Using Data Monitor to View Remote Kernel Metrics Your main navigation tool for Data Monitor is the Signals Tree in the upper left corner As an example of how to use Data Monitor with remote kernel metrics use the following procedure 1 Click the Connect to Target icon the first in the toolbar and select your target if you are not already connected to it Expand Live gt targetname gt System gt time Check the time group to automatically check all of the metrics under time user lowuser system idle which then display in units of jiffies 1 100th of a second CPU time spent executing user low p
390. tab for details on what the settings mean for the particular item To find options for example those concerned with USB support select Edit gt Find and enter the string USB To generate the new kernel right click reconfig in the project folder and select Build Target To save the configuration file select File gt Save 5 3 Adding Kernel Modules to the Platform You can create a kernel module as a subproject of a kernel project and the kernel module subproject will inherit the kernel build properties This makes creating a kernel module a simple task Workbench comes with a sample kernel module project that you can add to a kernel project See 4 6 Debugging User Supplied Kernel Modules p 101 117 Wind River Workbench User s Guide 3 0 Linux Version 5 3 1 Creating a Custom Kernel Module You can configure the build system for a custom kernel module created from your source files once you have created a platform project In this example you will directly attach the new module to an existing platform project Alternatively you could skip that step and enter the KERNEL ARCH and CROSS_COMPILE values directly for an external kernel or even leave these fields blank and attach or set them at a later date When you build this custom kernel module note that the generated Makefile automatically includes the module s source files and the module name has been set from the project name 1 Right click in the Project E
391. target The connection is not established immediately as with the connect command see connect p 379 but only when a client connects to the specified port number Usage create type type port port tgt larget pport pport where the arguments to the create command are as follows type type is udpsock UDP socket connection tcpsock TCP socket connection only tepsock is allowed for a VxWorks proxy host tipcsock TIPC socket connection port the port to connect to on the target NOTE If you do not assign a port number the default value of 0x4444 is used tgt target host name or IP address of the target when type is tcpsock or udpsock and port provides the UDP or TCP port number When type is tipcsock this is the target TIPC address and tipcpi provides the TIPC port instance and tipcpt provides the TIPC port type pport proxy_TCP_port_number specify the TCP port number that clients host tools should connect to for connection to target_host This should be a unique number less than 65536 not used as a port by any other application and it should be greater than 1024 which is the last of the reserved port numbers NOTE If you do not specify a pport value one will be assigned automatically and returned in the command output 381 delete list Wind River Workbench User s Guide 3 0 Linux Version port target_TCP_port_number specify the TCP port to connect to on the target Th
392. te Systems view and select Run Real time Process b Copy the exec path and paste it into the Output View gt Target Console Tab at the bottom of the view Verify that the program runs directly on the target If the program runs but symbols are not found manually load the symbols by right clicking the process and selecting Load Symbols Check your Object Path Mappings to be sure that target paths are mapped to the correct host paths See 13 5 2 Object Path Mappings p 234 for details on setting up your Object Path Mappings a Open a host shell and type ls execpath If you have a target shell type the same command b Inthe host shell type devs to see if the prefix of the Exec Path for example host is correct If the Exec Path is correct try increasing the back end timeout value of your target server connection see Advanced Target Server Options p 232 for details From a target shell or Linux console try to launch the process Verify that the kernel node in the Remote Systems view has a small s added to the icon indicating that symbols have been loaded for the kernel If not see that the last line of the Object Path Mappings table displays a target path of lt any gt corresponding to a host path of lt leave path unchanged gt 353 Wind River Workbench User s Guide 3 0 Linux Version A 6 5 Launch Configuration Errors If a launch configuration is having problems delete it by clicking Delete below the
393. ted for the breakpoint and select Breakpoint gt Add Breakpoint Scope System Context You can change the scope of any breakpoint by clicking it in the Breakpoints view NOTE If you see a dialog stating that the location for the breakpoint is not available remember that the module is not currently loaded Click OK to continue If you close the source file you will be able to see that Workbench opens it when the breakpoint is hit Load the module on the target insmod moduleDebugExample ko Observe the breakpoint being hit and the source being opened to that location You can now debug the init routine or resume the execution When you are finished remove the module rmmod moduleDebugExample ko If you may see another dialog stating that the location for the breakpoint is not available this is all right because the module is unloaded Click OK to continue 4 Kernel Debugging Kernel Mode 4 6 Debugging User Supplied Kernel Modules 4 6 5 Providing Object Path Mappings to All Modules For Workbench to find the appropriate source file for a module it requires the path to the object files Unfortunately the kernel modules for a kernel may be scattered across many subdirectories making it a tedious task to specifying all of them 4 To easily gather all those paths and make them available to Workbench 4 1 In Workbench build the kernel_build target so that all kernel files are available 2 Select Project g
394. ted in step 2 Ifthe destination path begins with plugins and features then you must complete the rest of the steps in this section 3 Inside each plug in directory create a directory named eclipse This directory must be named eclipse and a separate eclipse directory is required inside each plug in directory 4 Inside each eclipse directory create an empty file named eclipseextension This file must be named eclipseextension with no txt or any other file extension A separate eclipseextension file is required inside each eclipse directory 5 Extract your plug in into the eclipse directory Two directories called features and plugins appear in the directory alongside the eclipseextension file NOTE For any plug in to work properly its features and plugins directories as well as an empty file called eclipseextension must be located inside a directory called eclipse 20 3 2 Installing a ClearCase Plug in Once you have created a plug in directory structure and have found a plug in you want to use with Workbench download and install it according to the instructions provided by the plug in s developer almost every plug in comes with release notes containing installation instructions This section will show you how to download and install a plug in on Windows 317 Wind River Workbench User s Guide 3 0 Linux Version Downloading the IBM Rational ClearCase Plug in Wind River recommends the IBM
395. ted your launch configuration for cooperative debugging you can begin debugging and switch between Java and native modes as described in the following procedure 1 304 Click Debug to start your application Your application will come up stopped in its main class if you selected Stop in main in the Main tab In the Debug view you should see two hierarchical trees one for the Java debugger Java HotSpot Client VM and one for the native debugger java Execute your Java application until it reaches a statement where there is a call to a native method and then click Step Into It should step into the native method If you did not configure the helper files location correctly you will get an error message indicating that JNI transitions are disabled 18 Debugging Projects 18 5 Java JNI Cooperative Debugging 2 To return from JNI debugging to Java debugging click Resume not Step Return to complete the step Workbench will stop the Java thread and you can continue with debugging the Java side 3 You can now move between the native and Java debuggers at any time and set breakpoints in either as long as the Java debugger is not disabled discussed next For example open any Java or native source file that is part of your application and double click in the gutter to set a breakpoint Conditions that Disable the JDT Debugger With Java JNI cooperative debugging the native debugger has control over the entire process inc
396. ter does not require UDP or TCP IP networking services so those functions do not need to be included with the kernel enabling a smaller kernel with fast intra node TIPC communication For the TIPC configured node to communicate with the Workbench host however a proxy must be provided that is capable of both TIPC and UDP communication capabilities The proxy may be provided by one of the cluster nodes a separate host or the Workbench host itself as described in 15 3 Configuring a TIPC Proxy p 248 246 15 Connecting with TIPC 15 2 Configuring TIPC Targets 15 2 1 Installing the TIPC Kernel Module If you are using a Wind River Linux platform the tipe ko kernel module is supplied If you do not have the kernel module you can download the source from http sourceforge net projects tipc and then build it based on the instructions in the downloaded README file Once you have the kernel module install it and configure it on the target as follows 1 Load the TIPC kernel module insmod lib modules 2 6 SubVersion gpp net tipc ko The example shown is for the module supplied with one version of the Wind River Linux platform The location of your tipe ko kernel module may differ 2 Set the local TIPC address tipc config a 1 1 1 be eth eth0 Your actual command will differ if your network device is not eth0 or if you chose an address different from 1 1 1 3 Check that everything is configured properly tipc config
397. th ClearCase Views You should avoid manually adding source files to any build macro in any project type containing absolute paths they should be substituted by environment variables provided by wrenv for example wherever possible NOTE The metadata directory should not be version controlled as it contains mostly user and workspace specific information with absolute paths in it For more information about IBM Rational ClearCase see http www 130 ibm com developerworks rational products clearcase 22 2 2 Choosing Not to Add Build Output Files to ClearCase After installing the ClearCase plugin you may be prompted to add any build output files to ClearCase There are two ways to avoid this if you wish 1 Using Workbench Preferences a Open the Window gt Preferences gt Team gt ClearCase SCM Adapter preferences page From the When new resources are added pull down list select Do nothing Using Derived Resource option a NOTE If you use Workbench managed builds they will automatically mark Configure your build so the build output goes into one or a few well known directories such as bin or output Check in the empty bin or output directories into ClearCase In the Project Explorer right click the directory you checked in select Properties and on the Info page select Derived From now on the Clearcase plug in will not prompt you about Derived resources the build output directories a
398. the Java application class files available for execution on the target For example you could build the application in a Workbench project that is on a filesystem shared between the host and target or simply copy the class files from the host to the target 4 Makea target connection or create a new target connection to your target in the Remote Systems view If you specified a specific port when starting usermode agent on the target you must specify that port in the target connection dialog as well For details on how to create a target connection refer to 13 Connecting to Targets 273 Wind River Workbench User s Guide 3 0 Linux Version Launch the Remote Debugging Session The following procedure provides an example of how to initiate a remote Java launch and debugging session Only some of the possible launch configuration settings are discussed For details on all launch configuration settings refer to Wind River Workbench User Interface Reference Launch Configuration Dialog 1 274 Select Run gt Debug and then select the Remote Java Launch and Connect configuration type Click New to open a set of tabs Tabs marked with a red X require input from you In the Main tab a Specify aname for your launch in the Name field or leave the default name b Click Browse to find the correct project and click Search to identify the correct main class c Check Stop in main to cause the debugger to suspend execution
399. the boot line would look like boot root dev nfs rw console ttyS0 115200 kgdboe 10 1 1 12 10 1 1 111 nfsroot 10 1 1 111 rootfs ip 10 1 1 12 10 1 1 1 255 255 255 0 mainstone eth0O off mem 128M And during the boot you would see kgdboe device ethO not up yet forcing it etho link down etho link up 100Mbps full duplex lpa 0x45E1 kgdboe debugging over ethernet enabled kgdb Defering I O setup to kernel module You can now skip to 4 4 Connecting with KGDB from Workbench p 95 Dynamically Configuring KGDB OE for PCD uclibc_small small The kernel now also supports the new dynamic kgdboe configuration when used as a kernel built in You do echo 10 1 1 111 gt proc sys kgdboe To see the current configuration enter cat proc sys kgdboe 94 4 Kernel Debugging Kernel Mode 4 4 Connecting with KGDB from Workbench NOTE Since the device has booted you do not need to specify its IP address You can now skip to 4 4 Connecting with KGDB from Workbench p 95 4 3 3 Option 3 Using a Serial Telnet Connection On the target with the KGDB enabled kernel find out the IP address of the target and the IP address of the host where you ll be running gdb or Workbench The kgdb 8250 module usage syntax is 8250_kgdb kgdb8250 com port baud rate This example is for a COM1 connection at 115200 baud target_ modprobe 8250_kgdb kgdb8250 0 115200 This example is for a COM2 connection at 9600 baud target_ modprobe 8250
400. the dialog To add additional options for memory cache size logging and symbol loading click the Edit button next to the Options field and make your selections Click Next Specify the location of the target root by clicking Add and entering the Target path for example and the Host path for example target rootfs click OK and then click Next Click Next in the Target Refresh Dialog box and then click Finish in the Connection Summary box Your core file connection appears in the Remote Systems view You can now connect to the core dump by right clicking the stopped process in the Remote Systems view and selecting Attach to Process The Debug view will show the debugger attached to the process at the point of the failure and an editor window will open at the error location in the source file Core File Analysis You can now perform various activities on the core file for example view a stack trace a memory dump a thread list local and global variables and register values But remember this is only a read only view of the process at the time of the core dump Ending the Session To end the core file debugging session disconnect in the Debug view and disconnect in the Remote Systems view 312 PART VII Updating 20 Integrating Plug ins sc ceeeeeeeteeeeeeeeeeeeeeeees 315 21 Using Workbench in an Eclipse Environment 323 22 Using Workbench with Version Control 329 313
401. the kernel module project and click OK The kernel module project reappears in the Project Explorer at the project level 4 Right click the platform project that you want to contain the kernel module subproject and select Properties 5 Click Project References select the kernel module project and click OK The kernel module project appears as a subproject of the new platform project 6 Right click the kernel module project and select Build Clean 119 Wind River Workbench User s Guide 3 0 Linux Version 5 4 Adding Build Targets for Analysis Tools You can add build targets to your platform project in the Project Explorer for any rules you add to Makefile wr If you are going to use Run Time Analysis Tools it can be useful to create a build target to make both Run Time Analysis Tools and the filesystem The build of Run Time Analysis Tools copies the correct target agents to the filesystem and also builds a KAL module that matches the kernel The build of the filesystem then includes the necessary Run Time Analysis Tools files Note that Memory Analyzer and Performance Profiler require that the KAL module must match the kernel so if you rebuild the kernel you should rebuild Run Time Analysis Tools and the filesystem as provided by the build target you add in this section Alternatively you could build only Run Time Analysis Tools and then copy the KAL ko module to the target Creating the Run Time Analysis Tools Build Targ
402. the remote connection b Choose the connection type This example uses SSH c Enter the host name or IP address of the remote Linux host a Enter the user name of the login account on the remote Linux host e Enter the full path of the workspace on the remote Linux host for example home wbuser remote_workspace f You can ignore the setting for the X server because this example displays output in the Console view For details on using an X server with a remote host configuration see Using an X Server with a Remote Host p 222 g Click Connect and click Yes when prompted to save your settings Enter your remote Linux host password when prompted NOTE You are now connecting to the remote Linux host with ssh or rlogin so this must be your Linux password which may be different than your Samba login Create an Example Project 1 220 Right click in the Project Explorer and select New gt Example gt Native Sample Project Click Next Select the Hello World Demonstration Program and click Finish This creates the project You can now look in the remote_workspace directory on your remote Linux host and see that a hello_world subdirectory is in it You can also see the same contents in the Windows drive you have mapped to the share 12 Building Use Cases 12 7 Developing on Remote Hosts Click the Set Active Build Spec and Debug Mode icon in the Project Explorer and set the active build spec to Linux GNU Rig
403. thernet port You can use ipconfig to identify the proper port to use If you have problems connecting to KGDB double check which port is configured and connected to the network If for example the modprobe commands takes a long time to return it may be accessing or defaulting to a port that is not connected and the only other sign of error is that kgdboe connections do not succeed Here are some common short cuts for starting kgdboe This version assumes the default Ethernet port for example eth0 target_ modprobe kgdboe kgdboe 192 168 29 107 This version explicitly calls out the target s IP address target_ modprobe kgdboe kgdboe 192 168 29 96 192 168 29 107 You can now skip to 4 4 Connecting with KGDB from Workbench p 95 93 Wind River Workbench User s Guide 3 0 Linux Version 4 3 2 Option 2 Using a UDP Connection on a PCD Product In the PCD product the kgdboe module is statically and automatically linked into the kernel There are two ways to configure the kgdboe as described here Statically Configuring KGDB OE for PCD uclibc_small small The first method is to add the kgdboe configuration into the boot command You must know the IP address of both the target and the host at boot time You can immediately connect with KGDB anytime after the boot completes For example if you had Target IP 10 1 1 12 Host IP 10 1 1 111 On the boot line you would need kgdboe 10 1 1 12 10 1 1 111 So
404. this error dialog box Retry Perform the same operation again possibly with the same failure 354 A Troubleshooting A 7 Error Log View Recover Open the database and attempt a repair operation This may take some time but you may recover your cross reference data Clear Database Delete the database and create a new one Cross reference data is lost and your workspace will be reparsed when you open the call tree Close Close the database No cross reference data is available nor will it be generated At the beginning of the next Workbench session an attempt to open the database will be made again A 7 Error Log View See the Wind River Workbench User Interface Reference Error Log View A 8 Error Logs Generated by Workbench Workbench has the ability to generate a variety of useful log files Some Workbench logs are always enabled some can be enabled using options within Workbench and some must be enabled by adding options to the executable command when you start Workbench This section describes the logs tells you how to enable them if necessary and how to collect them into a ZIP file you can send to Wind River support Once all the logs you are interested in have been enabled Workbench automatically collects the information as you work NOTE To discontinue logging for those logs that are not always enabled clear the boxes on the Target Server Options tab or restart Workbench without the add
405. ting Color gt specific color Debug View with Editor and Breakpoint View main c 2 int main void int i BALL p int seed 3 gridInit sta ini srand seed for i 0 i lt num_hard hardNew for i 0 i lt num_soft softNew for i 0 i lt num_spin spinNew o forkexec c 8 O Debug 8 kE o gt oo m of amp 2 Create the synchroniza createsem amp sid_parent pa printf Semaphore created Parent locks the semap locksem sid_parent 0 Parent calls fork sy childPid fork gt if childPid lt 0 perror fork failed f return 1 else if childPid 0 i return child_routine sleep 1 else i return parent_routine v ball out tgt_localhos Vv Task Mode V m Running main mail libc_start 0x08048368 Y Q forkexec out tgt loc V iforkexec out 1 main int arg _ibc_start 0x080485F0 forkexec out 113 Breakpoints X x k e forkexec forkexec c A is Q forkexec forkexec c The context pointer the arrow in the left gutter in main c indicates the statement that will execute when the process resumes 292 Colored Views 18 Debugging Projects 18 2 Using the Debug View The co
406. ting make rule or override any macro or affect anything else that is understood by make at every build regardless of what is being built Once you launch a build the list retains what you enter You can then type over a list entry When you perform another build the list retains your new build arguments as an additional entry To enter new arguments 1 Type one or more arguments into the text field whether it is blank or already has contents Use spaces to separate multiple arguments 2 Launch a build The build causes the text field s new arguments to be stored in the User Build Arguments list They are appended to and thus override the existing makefile entries This occurs on the fly at every build To use arguments already in the list 1 Select the appropriate argument or arguments in the list 2 Launch a build The user build arguments functionality does not provide any value macro or shell substitution For these set up an intermediate makefile e g Makefile wr for platform projects or perhaps Makefile user NOTE The current setting of the User Build Arguments field applies to all builds including those from the Run Last Build again button 212 12 Building Use Cases 12 7 Developing on Remote Hosts 12 7 Developing on Remote Hosts The Workbench remote build feature allows you to develop build and run your applications on a local host running Workbench using a workspace that is located on a
407. tinue building You can usually unload symbolic information without problems provided that you do not have a debug session open in the affected module If you have a module open you should terminate your debug session before continuing the new build and launch process 285 Wind River Workbench User s Guide 3 0 Linux Version 286 18 Debugging Projects 18 1 Introduction 287 18 2 Using the Debug View 288 18 4 Using the Disassembly View 301 18 5 Java JNI Cooperative Debugging 302 18 6 Remote Kernel Metrics 306 18 7 Run Debug Preferences 308 18 1 Introduction The Wind River Workbench debugger lets you download object modules launch new processes and take control of processes running on the target Unlike other debuggers you can attach to multiple processes simultaneously without affecting them or being required to disconnect from one process in order to attach to another This chapter introduces the Debug and Disassembly views and shows you how to use them to debug your programs NOTE You must use the g compiler option to use many debugger features The compiler settings used by the Workbench project facility s Managed Builds include debugging symbols 287 Wind River Workbench User s Guide 3 0 Linux Version 18 2 Using the Debug View Figure 18 1 Use the Debug view to monitor and manipulate the processes running on your target To examine a process in the Debug view 1 Connect to you
408. tput disabling prompt to add to ClearCase 331 remote 215 remote connection 215 remote setting up environment 214 support disabled 190 target excluding with regular expressions 193 user defined 190 build nodes Wind River Linux 59 build specs setting 37 build_all 59 401 Wind River Workbench User s Guide 3 0 Linux Version C ClearCase disabling prompt to add build output files 331 installing plug ins 317 with Workbench 329 colored views 293 command line import projects wrws_import 387 update workspaces wrws_update 383 compiler flags add 202 conditional breakpoints 259 configuration startup option 339 connection type 14 connections Ethernet 95 hardware targets 63 64 QEMU 61 serial 98 TCP 89 telnet 97 testing 67 UDP 89 Console view 281 context pointer 292 cooperative debugging Java and JNI 302 core files acquiring 310 attaching Workbench 311 general 309 creating custom kernel module 118 cross development concepts 11 Customer Specific Linux Application project 147 Linux Kernel project 148 D data breakpoints 259 Data Monitor 307 data startup option 336 debug modes 294 Debug perspective 36 402 debug server loading symbols 234 Debug view 288 debugger CDT GDB 35 disconnecting and terminating processes 296 single stepping through code 293 deleting project nodes 167 deploy automated target 138 derived resource not adding to ClearCase 331 Device Debug perspective 34 disabled build s
409. tries to access memory outside of its allowed memory space This information is then saved on the target in a file called the core file or core dump typically named core pid where pid is the process ID of the program that crashed The core dump is an ELF file that contains an image of the process memory space details of the process state and additional information at the time of the crash You can then transfer the core file to your host and analyze the cause of the crash using the Workbench debugger at any time 309 Wind River Workbench User s Guide 3 0 Linux Version 19 2 Acquiring Core Dump Files With the bash shell you control the creation of core dumps with the ulimit command For example to determine your current settings enter target_ ulimit a core file size blocks c 0 data seg size kbytes d unlimited file size blocks f 20 pending signals i 1024 max locked memory kbytes 1 32 max memory size kbytes m unlimited open files n 1024 pipe size 512 bytes p 8 POSIX message queues bytes q 819200 stack size kbytes s 10240 cpu time seconds t unlimited max user processes u 11768 virtual memory kbytes v unlimited file locks x unlimited target_ Most Linux systems come with the default setting to not allow core file generation In the example this is shown as a core file size setting of 0 You can turn on core file generation by specifying a maximum size or unlimite
410. ttach to Target Launch Configuration ssssssssessreeseee 267 The Main Tab ucsnodriomannino ia RA 267 The Projects to Puild Tab crannan nN 267 xvi 18 17 3 17 4 17 5 Dabugging PICO sdnniinnininnnmunminninincmnmitiemnednes 18 1 18 2 Using the Debug View sscsecsseenees 722 1723 17 2 4 17 2 5 17 2 6 172 7 17 28 Contents Tie Beis TAS moree O a The 6 Oran TIP causes ah uawissraeiaiieiunrtia ion raeiuacaea nine winds Creating a Process Launch Configuration cccccsssssvecsencenssererveesennoeseys The Main TaD suorien e T The Teoecis tes PaA Taben deatacdstehaceeiacaainiaehioaeeacd The Debug Uphons Tab erreian TSS TE a EE maine TE CONO Ta ia ONS Using Launch Configurations to Run Programs 0 Increasing the Launch History sesiis Troubleshooting Launch Contig utations sissssscsssnsssrenarccsssiensarenssinsetinn Remote Java Launches sciccossissiiscisnrrnsoiniansciosnnautinaanensindiaenmcnesiamianaine Launching Programs Manually sccnccncinsnennacmucianconatnanciaint Controlling Mal tiple Launches sncnisssaunsrnninnnaniainniaiecnnonmiarcmmnamnse 2 ite 7O i ATO ate Terminology i me ring a Lawes i Sequence acca n Pre Launch Post Launch and Error Condition Corm Launches and the Console View cccssssssssssssssssecsssssescssecesessesescssesescesesescseeers Attaching the Debugger to a Running Process ssssesssssssesessssessesseseseesseees Launches and the Con
411. u use the Build Project Rebuild Project and Clean Project menu commands It also prevents the generation of build errors But you are responsible for maintaining this makefile and you can write any other rules into it at any time If you base your User Defined project on an existing project that project s makefile is copied to the new project overwriting any already there If necessary you can change the name of the new project s makefile using the f make option to avoid overwriting an existing makefile 7 3 Creating User Defined Projects Before creating the project see the general comments on projects and project creation in 6 Projects Overview 1 Create a User Defined project by selecting File gt New gt User Defined Project 2 Select a target operating system then click Next 3 Type a name for your project 4 Decide where to create your project Create project in workspace Leave this selected to create the project in the current workspace directory Create project at external location Select this option click Browse then navigate to a different location to create the project outside the workspace 152 7 Creating User Defined Projects 7 4 Configuring User Defined Projects Create project in workspace with content at external location Select this option click Browse then navigate to your source location if you do not want to mix project files with your sources or to copy sources into your workspace 5 Wh
412. ude Paths Tab p 181 is available for both managed and user defined projects and it stores its results in the team shared include paths of the corresponding project This wizard is always available when you select the Team Shared node in the Include Paths tab page To access the ISP wizard 1 Right click the project 2 Choose Properties gt C C General gt Paths and Symbolls 3 Notice the tabs in the resulting Paths and Symbols page The following subsections describe how to use the pages brought up by these tabs Include Paths Symbols Sources Filters Discovery Miscellaneous and External APIs as shown on the following figure 180 10 Navigating and Editing 10 5 Configuring the Indexer for Source Analysis Include Paths Symbols Sources Filters Discovery Miscellaneous External APIs Manage include paths for the indexer Include Path Physical Path Discovery Miscellaneous Team Shared Managing Include Paths for the Indexer Include Paths Tab The Include Paths page lets you assign or specify include paths in these categories Discovery Enable build output analysis for user defined projects Highlight Discovery and click Edit to branch to the Discovery tab see Setting Up a Build Driven Index Discovery Tab p 184 Miscellaneous Configure project specific options and compiler name and location Highligh Miscellaneous and click Edit to branch to the Miscellaneous tab se
413. ues as appropriate for your environment 11 You can now build the project The resulting binary will appear in the bin arch subdirectory of the sre directory 85 Wind River Workbench User s Guide 3 0 Linux Version 86 Kernel Debugging Kernel 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 Mode Introduction 88 Background Steps and Concepts 89 Preparing the Target for KGDB 93 Connecting with KGDB from Workbench 95 Attaching and Debugging the Kernel from Workbench 99 Debugging User Supplied Kernel Modules 101 Using QEMU for KGDB Kernel Debugging 110 Enabling and Disabling KGDB in the Kernel 113 87 Wind River Workbench User s Guide 3 0 Linux Version 4 1 Introduction Wind River Workbench provides source level debugging for Linux 2 6 kernels that support the Kernel GNU Debugger KGDB NOTE If you are not using a Wind River Linux platform contact Wind River support about configuring your kernel for symbolic debugging with Workbench With KGDB installed you can debug the kernel much as you debug applications including stepping through code setting breakpoints and examining variables Kernel mode debugging between Workbench and the target takes place over a serial protocol connection which may be over a serial line or Ethernet NOTE With Wind River Linux kernel debugging is enabled by default and you only have to turn it off when going to production Wind River is a contributor to the KGDB open s
414. uild target However the physically existing build target if built is not deleted from the disk The convenience node referred to above lets you see at a glance whether the target has been built or not even if you have uncluttered your view in the Project Explorer by hiding build resources in the drop down menuat the top right choose Hide gt Build Resources and or collapsing the actual target node If you have collapsed the node the sign will indicate that the build target exists 168 10 Navigating and Editing 10 1 Introduction 169 10 2 Wind River Workbench Context Navigation 170 10 3 The Editor 173 10 4 Search and Replace 175 10 5 Configuring the Indexer for Source Analysis 176 10 1 Introduction Workbench navigation views allow seamless cross file navigation based on symbol information For example if you know the name of a function you can navigate to that function without worrying about which file it is in You can do this either from an editing context or starting from the The Symbol Browser p 171 On the other hand if you prefer navigating within and between files you can use the The File Navigator p 172 Source analysis is the parsing and analysis of source code symbol information This information is used to provide code editing assistance features such as multi language syntax highlighting code completion parameter hints and definition declaration navigation for files within your projects 169
415. un Debug Process The Run Process dialog box appears 2 Type the path and filename as seen by the target into the Exec Path on Target field or click the Browse button and navigate to the executable file 3 To immediately put the program under debugger control at launch select Attach Debugger and Break on entry to let it run clear the Break on entry check box Click OK Workbench runs the process on the target and the executable and its host location along with the individual tasks appear below Processes in the Remote Systems view If a red S appears then symbol information has been loaded into the debugger 283 Wind River Workbench User s Guide 3 0 Linux Version BN FDP bzi default localhost E 82xx_ 147 11 36 202 Wind F s 3 linux_native_localhost_wbus ee Pentium Linux 2 6 con Processes amp Linit Interruptible 2 ksoftirqd 0 Inter 3 events 0 Interru If you selected Break on entry at main four other things happen as well Workbench automatically switches to the Device Debug perspective if it is not already open The process is displayed in the Debug view A temporary breakpoint is planted and appears in the Breakpoints view The program executes up to the entry point at main and breaks Whenever you manually run a process a corresponding Attach to Target launch configuration is automatically created To use these configurations see Editing an Attach to Target L
416. unted or mounted by QEMU on the target 4 Ifthe target path is not or the host path is not your platform_prj export dist directory use the Add button to specify them and select the single box for the pair you want to use 5 Click Finish The Virtual WRLinux0 terminal window opens It reports the steps in the process of making the connection In the Remote Systems view a connection appears WRQEMULinuxUser_Project_prj This is the target connection you will use in 3 9 Debugging an Application on the Target p 72 6 You may have to log in as root with the password root unless you are using a small rootFS in which case you are automatically logged in as root 7 Continue with 3 6 Testing Target Connections p 67 3 4 2 Configuring Hardware Target Connections When you use an actual external target over the network you must configure the target to locate its kernel and file system Typically a boot loader on the target will download a kernel from your host and the target will NFS mount a root file system from your host This section assumes the target board has already been configured but gives an overview of how your kernel and file system might be configured for access by your target board Refer to the Wind River Linux Platforms User s Guide the installation specific README files Also see your target s boot documentation for details on how to supply boot parameters Configuring NFS to Export Root File Systems to the
417. upport 190 disabling breakpoints 263 Disassembly view 301 opening automatically 301 opening manually 301 dist tar bz2 files 129 E Eclipse using Workbenchin 323 Editor 173 context pointer 292 environment commands Launch Control 279 error condition command Launch Control 277 Error Log view 355 357 Ethernet connections 95 ports 93 exclusion filters 342 Exec Path on Target troubleshooting 352 export directories 57 export dist directories 51 QEMU 61 export layer 59 export sysroot 59 expression breakpoints 259 external locations 84 F File Navigator view 172 file system configuration Wind River Linux 121 File System Layout Configuration Tool 129 file systems browsing target s 68 copying files within 68 NFS mounting 91 files manipulating 166 find and replace 175 G GDB debugger 35 H hardware breakpoints 259 Hello World tutorial 32 help system on Solaris 339 on Windows 340 ICE like debugging 110 importing build settings 163 resources 162 Include Browser view 173 indexer preferences 176 J Java applet 272 Index Java application 272 Java Development Tools JDT installing 321 Java project 272 Java JNI cooperative debugging 302 JNI 302 K kernel debugging with QEMU_ 110 metrics 306 reconfiguration Wind River Linux 116 safe areas 92 signals 306 Kernel Configuration Wind River Linux 116 Kernel Configuration node Wind River Linux 59 kernel mode debugging 14 kernel modu
418. uration You must install the linux inf file on the windows host The file is available in the Documentation directory of most kernels including all Wind River Linux kernels To install the file first convert it to the DOS text file format with the unix2dos command unix2dos linux inf Connect a USB cable with the host connector attached to the Workbench host and the peripheral connector attached to the target When you attach the USB cable to the Windows host Windows will recognize new hardware and start the new hardware wizard Follow the prompts and install the linux inf file 244 15 Connecting with TIPC 15 1 Introduction 245 15 2 Configuring TIPC Targets 246 15 3 Configuring a TIPC Proxy 248 15 4 Configuring Your Workbench Host 250 15 5 Using usermode agent with TIPC 251 15 1 Introduction This chapter describes how to configure Linux TIPC targets and your Workbench host to support debugging For detailed information about TIPC see the official TIPC project Web site at http tipc sourceforge net The transparent inter process communication TIPC infrastructure is designed for inter node cluster communication Targets located ina TIPC cluster may not have access to standard communication links or may not be able to communicate with hosts not located on the TIPC network Because of this host tools used for development may not be able to access those targets and debug them without special tools To solve this commu
419. use these as follows Create and or enable proper build specs on the Build Support and Specs tab page Edit build tool settings on the Build Tools tab page if necessary Edit build macros on the Build Macros tab page In many cases the DEFINES build macro is already predefined Use this to define preprocessor macros symbols if available All symbols including D prefix defined by build macros and passed to build tools are also passed on to the indexer and thus used for parsing source code of the given resource For instance you may set DEFINES to DMACRO1 DMACRO2 and pass DEFINES to the C or C compiler on the Build Tools tab page in the Command or Tool Flags section In addition to the symbols defined on the Build Macros tab page the symbols defined implicitly by the selected build tools are also passed on to the indexer Edit build paths on the Build Paths tab page Use Generate to have include paths determined for unresolved include directives Build paths of the default build spec are passed on to the indexer as well as to the build tools In addition to the include paths defined on the Build Paths tab page the include paths defined implicitly by the selected build tools are also passed on to the indexer NOTE The indexer uses only the symbols and include paths defined for the default build spec to parse source code for a given project 178 10 Navigating and Editing 10 5 Configuring the Indexer for Source A
420. ux host with the drive share under Windows For example Target path home wbuser remote_workspace Host path W Click Next until you can click Finish to complete the connection 221 Wind River Workbench User s Guide 3 0 Linux Version Select Run gt Debug and select your new connection Click Debug NOTE If you get a Source not found error in the Editor space click Edit Source Lookup click Add click Workspace and click OK Then expand Workspace select your project folder and click OK You can also add this source lookup path to an existing connection by selecting Run gt Debug and using the Source tab You can now proceed to debug the program as usual Note that program output apears in the Console view Using an X Server with a Remote Host If you have an X server available on your Windows host such as Exceed or Cygwin X you can display the remote Linux output in an xterm on the Windows host if you are configured as follows 1 222 In Project gt Remote Connection the Display X server field is by default set to IP_address 0 0 This should be acceptable unless you are running multiple X servers on your Windows host The Windows X server must allow clients from your remote host to display locally For example if you are using Cygwin X enter xhost in an xterm window to allow access to all X clients or xhost IP_address using the IP address of your remote Linux host for restricted access
421. value Launch Options r run config argument Run the launch configuration named argument previously created using the Workbench GUI Execution will always be in run mode If the launch configuration name has spaces within the name you must enclose the name in double quotes and escape the enclosing quotes for example r launch config name with spaces Nightly Update Options i update index Update search database index m generate makefiles Regenerate makefiles where necessary s update symbols argument Update symbol database source analysis To create the data from scratch you can supply rebuild as argument t create team symbols argument Export symbol databases for shared use in a team The argument is a quoted comma separated list of options Valid options are timestamp readonly and 385 Wind River Workbench User s Guide 3 0 Linux Version checksum The default is timestamp readonly checksum See the online documentation for details on these options x update xref argument Update cross references source analysis To create the data from scratch you can supply rebuild as argument Output Any errors that might occur during the updates are printed out to standard error output Other information for example status what has been done and so on are printed out to standard output NOTE No configuration management specific actions or commands are executed within this script a
422. vant enabled specs in the user interface rather than the whole list If you are working on a Windows application you would normally enable the msvc_native build spec and disable the gnu native build specs If you are working on a Linux or Solaris native application you would normally enable the GNU tool version you are using and disable all others The Debug Mode check box specifies wether or not the build output includes debug information When you are ready click Next Build Target The Build target name is the same as the project name by default You can change the name if necessary but if you delete the contents of the field no target will be created Build tool For a Native Application project you can select Linker This is the default selection The linker produces a a BuildTargetName exe for Windows native projects executable file The Linker output product cannot be passed up to superprojects although the current project s own unlinked object files can as can any output products received from projects further down in the hierarchy see step 4 above Librarian This is the default selection if you specified that the project is to be linked into a project structure as a subproject The Librarian produces a TargetName a or lib for Windows native projects archive file 157 Wind River Workbench User s Guide 3 0 Linux Version The Librarian output product can be passed up to superprojects as
423. ver Workbench User s Guide 3 0 Linux Version 150 Creating User Defined Projects 7 1 Zia 7 3 7 4 Introduction 151 Creating and Maintaining Makefiles 152 Creating User Defined Projects 152 Configuring User Defined Projects 153 7 1 Introduction User Defined Projects assume that you are responsible for setting up and maintaining your own build system file system population and so on The user interface provides support for the following You can configure the build command used to launch your build utility this allows you to start builds from the Workbench GUI You can also configure different rules for building rebuilding and cleaning the project You can create build targets in the Project Explorer that reflect rules in your makefiles this allows you to select and build any of your make rules directly from the Project Explorer Build output is captured to the Build Console 151 Wind River Workbench User s Guide 3 0 Linux Version 7 2 Creating and Maintaining Makefiles When you create a User Defined project Workbench checks the root location of the project s resources for the existence of a file named Makefile If you used the f make option to specify a different filename in the New Project wizard s Build Command field you could include a relative or absolute path to a subdirectory If the file does not exist Workbench creates a skeleton makefile with a default all rule and a clean This lets yo
424. view with Virtual IO VIO features that allow you to monitor the standard output and error output of your applications and to enter standard input VIO connects the Console view to a particular context process or task You can also have multiple Console views and pin them to a particular context Most Console view settings are available in the Common tab of your launch configuration and you can specify Console view preferences in your Workbench preferences Note that Console view VIO is tied to the debugger and cannot always serve the same purposes as a terminal connection to the target You cannot use it for example to monitor the boot loader or set boot parameters The Console view is associated with a particular debugger context and is not a general purpose terminal connection Launches and the Console View Each launch opens a Console view for I O and error messages provided the Allocate Console check box is selected in the Common tab of the launch the default setting NOTE This refers to the Common tab of each individual launch configuration not the Common tab of the Launch Control configuration In the Common tab you can also specify a file where console output is appended or overwritten with each launch The Console view itself offers several controls as described in the next section Note that you can also modify Console view settings such as buffer size and text colors by selecting your preferences at Window gt P
425. voncis 64 Running Usermode Agent on Non Emulated Targets sssssssssssssssesseseee 65 Teshing Target COnnSchiGns sicissimnmarneienmnmnnannannmananmaaiwen 67 Using the Remote System Explorer ssssssssssssssessesesesssesesessesencsesessseseeseneees 67 Browsliie the Target s Pile Syste se sscesctacscsciiccsssccraansentemscadanannticeas 68 Copying Files Within the Target File System eesti 68 Issuing Remote Shell Commands to Your Target scssssssssseesseneees 68 Using the One Step Launch Configuration csssssssesresssseeeeseeeeeseeseseees 69 3 8 1 Accepting the Automatic Debug Launch Configuration 000 69 3 8 2 Modifying the Default Launch Configuration eee 70 3 8 3 Using the Launch Configuration to Connect to the Target 0 4 71 Debugging an Application on the Target sessessessssessessesseseosesseseoseeseosesseseoseoses 72 39 1 The Workbench Debugging Environment s cccccricicsemiscriaenns 72 39 2 Running on the Target up toa Breakpoint 1 ciccsccssicsceveccasssiveeveravasirs 73 vi 3 10 3 11 Contents 392 Using the Device Debug Perspective sininiionoirnanincennanunsnesaiinn S94 Stepping Through Code ssscniaccmnucennincnneniennanunaioen 39 5 Setting and Running toa Breakpoint sissvsrissrasievisiesiiessnni 3 9 6 Modifying the Breakpoint to Execute Continuously cceeeees 39 7 Sanding Signals to Procediif senaniman SOG Terminating the Procesi cnccenmrnncnscrvirewmninahicir
426. window then press ENTER c Check to see if the target server is now running If not check the Error Log view for any error messages Check if the dfwserver is running on Linux and Solaris use the ps command from a terminal window on Windows check the Windows Task Manager If multiple dfwservers are running kill them all then try to reconnect Check that the WDB connection to the target is fully operational by right clicking a target in the Remote Systems view and selecting Target Tools gt Run WTX Connection Test This tool will verify that the communication link is correct If there are errors you can use the WTX and WDB logs to better track down what is wrong with the target A Troubleshooting A 6 Error Messages Exception on Attach Errors If you try to run a task and the Remote Systems view is unable to comply it will display an Exception on Attach error containing useful information Build errors can lead to a problem launching your task or process if one of the following suggestions does not solve the problem try launching one of the pre built example projects delivered with Workbench If the host shell was running when you tried to launch your task or process try closing the host shell and launching again Error When Running a Task Without Downloading First You will see the following error if you try to run a kernel task without first downloading it to your target W Exception on Attach Failed to launch Ker
427. wo debugging connections indirectly and unavoidably share some spin locks 92 4 Kernel Debugging Kernel Mode 4 3 Preparing the Target for KGDB 4 3 Preparing the Target for KGDB You need to start the KGDB agent on the target before you can make any connection from Workbench You can use two connection methods to connect to KGDB the first over the Ethernet via UDP and the second using a serial connection either directly to a COMM port or otherwise over Telnet The Ethernet KGDB connections are typically much faster than serial connections 4 3 1 Option 1 Using a UDP Connection on a Non PCD Target On the target with the KGDB enabled kernel find the IP address of the target and the IP address of the host where you ll be running gdb Workbench The kgdboe module usage syntax follows It is very rare that you will need to enter the source port or the host mac address kgdboe src port src ip dev hst port hst ip hst macaddr It is recommend to explicitly call out the Ethernet port since this guarantees that kgdboe will used the correct port kgdboe does not know which port the device was booted with Since more and more boards have multiple Ethernet ports the default of ethO may not be correct Target_ modprobe kgdboe kgdboe eth2 192 168 29 107 NOTE To underline this point if this board has multiple Ethernet ports and or the port you want is not the default you must explicitly select that alternate E
428. xplorer and select New gt Wind River Linux Kernel Module Project Assign a name to your kernel module project and click Next Select a platform project as a superproject for this kernel module and click Next Note that the Linux kernel information at the bottom of the dialog is filled in because the values have been imported from the platform superproject Click Finish The kernel module project now appears as subproject of the platform superproject in the Project Explorer Import source files a Right click the new kernel module project and select Import gt General gt File System b Browse to installDir wrlinux 2 0 samples moduledebug_2_6 c Click OK d Select the files bpHere c and moduledebug c You could of course import your own source files The files in this example demonstrate kernel module builds and testing moduledebug c provides the module init and exit points and bpHere c sets a breakpoint e Click Finish You can now build the module deploy it and test it 118 5 Configuring Wind River Linux Platforms 5 3 Adding Kernel Modules to the Platform 5 3 2 Moving Kernel Module Projects To move the kernel module project from one platform project to another use the following procedure 1 Right click the kernel module project and select Build Clean 2 Right click the platform project that currently contains the kernel module subproject and select Properties 3 Click Project References deselect
429. y for the connection object path mappings that name the target path always and host path such as workspace Project Name_prj export dist This mapping specifies which host directory is to be NFS mounted on the target s root directory or in the case of QEMU which directory is to be mapped to the emulated target s root directory NOTE Make sure that you have specified the root directory for example workspacelPlatformName_prj export dist in the application s root directory build property If you do not see your application subdirectory in the dist directory rebuild the application project as in Step 4 For non QEMU targets a Start your target power up the board and wait until you see the kernel target shell present a window on the host via an Ethernet serial or USB connection then configure for the kernel and root file system and re boot Run ust bin usermode agent daemon in the target window see Step 3 in 3 5 Running Usermode Agent on Non Emulated Targets p 65 The usermode agent waits for connections and handles the Wind River debugging WDB Agent communication between Workbench and the target Connect the target connection to the usermode agent running on the target by selecting the connection and clicking the Connect icon in the Remote Systems toolbar See 3 6 Testing Target Connections p 67 3 Creating and Debugging Platform Projects 3 1 Introduction 8 Run or debug the application on t
430. you want to run on the target Select Run Process on Target to begin to create a new debug launch configuration On the left select Process on Target Click the New launch configuration icon in the toolbar A Create manage and run configurations window opens with an area for creating a launch configuration in the right portion of the dialog box In the Name field accept the supplied name or enter a new name such as penguin for the launch configuration In the Exec Path on Target field browse to your executable For example For QEMU workspace penguin arm_versatile_926ejs glibc_std armv5tel_fvp pengu in Debug penguin out 3 Creating and Debugging Platform Projects 3 8 Using the One Step Launch Configuration For the Power PC opt windriver ppc85xx hello_Linux board fs CP U hello_linux Debug hello_Linux out 7 Inthe Working Directory field browse to the directory containing your executable For example For QEMU workspace penguin arm_versatile_926ejs glibc_std armv5tel_fvp pengu in Debug For the Power PC opt windriver ppc85xx hello_Linux board fs CP U hello_linux Debug 3 8 3 Using the Launch Configuration to Connect to the Target If you have modified the default launch configuration as explained in the previous section you can use it to connect to the target as follows 1 Confirm that you are still looking at the Create manage and run configurations dialog that you have just modified 2 If
431. zed to determine symbols and include paths that the indexer should use to parse the files of the project Only files parsed during a previous build run are parsed NOTE If no files have ever been built for a project all files are parsed guaranteeing that you end up with an index source analysis and navigation capabilities 10 5 3 Setting Up Paths and Symbols Usually you do not need to set up the indexer manually by defining additional symbols and include paths The indexer derives the necessary settings automatically from the build properties of managed projects or from the build output of user defined projects In addition for user defined projects include paths are automatically calculated after creating a project in order to have a valid setup even before the project is built Files and folders are automatically considered only if they have been added or linked to the project at project creation time At any time later you can let Workbench detect include paths for a project using the Include Search Path ISP wizard In order to do so follow the directions in the following subsections for both managed and user defined projects NOTE The ISP wizard for managed projects via Build options gt Generate include search paths is only for managed projects It stores its results in the build properties of the corresponding project However the ISP in the Include Paths tab page see Managing Include Paths for the Indexer Incl

Download Pdf Manuals

image

Related Search

Related Contents

1 - Sony  Alliance Laundry Systems CS2000 User's Manual  Bedienung und installation utilisation et installation  LT-32EP9U LT-32DB9BD LT-26DB9BD LT-19DB9BD  TS700-Starburst-user-operating-instructions  Cycle Cross Chain Catcher Installation Instructions (K13 - K-Edge  20-COMM-E EtherNet/IP Adapter User Manual  Whirlpool WRT111SFDW Use and Care Manual  

Copyright © All rights reserved.
Failed to retrieve file