RTOS Debugger for ecos



Similar documents
TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... TriCore... TriCore Monitor... 1

Integration for X-Tools and X32

General Commands Reference Guide G

Training Simulator and Demo Software

TRACE32 Debugger Getting Started... ICD Tutorial About the Tutorial... 2

Application Note C++ Debugging

DsPIC HOW-TO GUIDE Creating & Debugging a Project in MPLAB

GPU Tools Sandra Wienke

WINDOWS PROCESSES AND SERVICES

MONITORING PERFORMANCE IN WINDOWS 7

Chapter 2: OS Overview

Chapter 6, The Operating System Machine Level

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

SYSTEM ecos Embedded Configurable Operating System

Back-up Server DOC-OEMSPP-S/2014-BUS-EN-10/12/13

Helping you avoid stack overflow crashes!

EE8205: Embedded Computer System Electrical and Computer Engineering, Ryerson University. Multitasking ARM-Applications with uvision and RTX

Embedded Software development Process and Tools:

How to test and debug an ASP.NET application

Using Process Monitor

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v Steps to Developing a QNX Program Quickstart Guide

EMBEDDED C USING CODEWARRIOR Getting Started Manual

Debugging with TotalView

REAL TIME OPERATING SYSTEMS. Lesson-10:

Performance Comparison of RTOS

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Development With ARM DS-5. Mervyn Liu FAE Aug. 2015

National CR16C Family On-Chip Emulation. Contents. Technical Notes V

Hands-On Microsoft Windows Server 2008

ICS Technology. PADS Viewer Manual. ICS Technology Inc PO Box 4063 Middletown, NJ

Smart Connection 9 Element Labels

Java Troubleshooting and Performance

IX Support Tool Setting Manual

NetBeans Profiler is an

Training Android Debugging

Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis

DS-5 ARM. Using the Debugger. Version Copyright ARM. All rights reserved. ARM DUI 0446M (ID120712)

An Implementation Of Multiprocessor Linux

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial

CodeWarrior Development Studio for Microcontrollers Version 10.x Profiling and Analysis Tools Users Guide

How to design and implement firmware for embedded systems

Understanding Task Scheduler FIGURE Task Scheduler. The error reporting screen.

DS-5 ARM. Using the Debugger. Version 5.7. Copyright 2010, 2011 ARM. All rights reserved. ARM DUI 0446G (ID092311)

S7 for Windows S7-300/400

Cortex-A9 MPCore Software Development

Getting Started with CodeXL

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Zing Vision. Answering your toughest production Java performance questions

Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details

Priority Based Implementation in Pintos

My EA Builder 1.1 User Guide

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Keil Debugger Tutorial

GIVE WINGS TO YOUR IDEAS TOOLS MANUAL

USB Flash Memory TransMemory-EX II TM

ShoreTel Workgroup Real-Time Monitor

Debugging Java Applications

ACP ThinManager Tech Notes What's New, or Why Upgrade ThinManager?

warpct.com Basic Computer Skills MS Windows XP Workbook courseware by WARP! Computer Training

WebSphere Business Monitor

CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start

Lab 2-2: Exploring Threads

Server Manager Performance Monitor. Server Manager Diagnostics Page. . Information. . Audit Success. . Audit Failure

User s Manual for Fingerprint Door Control Software

The Advanced JTAG Bridge. Nathan Yawn 05/12/09

COMMANDS 1 Overview... 1 Default Commands... 2 Creating a Script from a Command Document Revision History... 10

138 Configuration Wizards

An Introduction to the ARM 7 Architecture

AMD CodeXL 1.7 GA Release Notes

Also on the Performance tab, you will find a button labeled Resource Monitor. You can invoke Resource Monitor for additional analysis of the system.

Objectives. At the end of this chapter students should be able to:

Example of Standard API

Exception and Interrupt Handling in ARM

ELEC 377. Operating Systems. Week 1 Class 3

FileNet System Manager Dashboard Help

Troubleshooting Citrix MetaFrame Procedures

Real Time Programming: Concepts

Getting started guide 3G Turbo Stick. 3G Novatel Wireless U760 USB modem

Training Linux Debugging

Red Hat Linux Internals

Understand Performance Monitoring

mypro Installation and Handling Manual Version: 7

1. Computer System Structure and Components

Using the CoreSight ITM for debug and testing in RTX applications

Jive Connects for Openfire

Basics of VTune Performance Analyzer. Intel Software College. Objectives. VTune Performance Analyzer. Agenda

? Index. Introduction. 1 of 38 About the QMS Network Print Monitor for Windows NT

SA-9600 Surface Area Software Manual

DVR GUIDE. Using your DVR/Multi-Room DVR WAVE-123 wavebroadband.com

Acquisition of the Microsoft Surface RT

Introduction. What is an Operating System?

Model 288B Charge Plate Graphing Software Operators Guide

Real-Time Scheduling 1 / 39

Figure 1: Graphical example of a mergesort 1.

SATA Blu-ray/DVD/CD Duplicator Controller

1 Intel Smart Connect Technology Installation Guide:

An Introduction to MPLAB Integrated Development Environment

Operating System Manual. Realtime Communication System for netx. Kernel API Function Reference.

User s Guide for Polycom CX7000 Systems

COMMANDtrack. Service Bulletin 2.7 Release Date: September 13, New Functionality. Application CR Description

Transcription:

RTOS Debugger for ecos TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... RTOS Debugger... RTOS Debugger for ecos... 1 Overview... 2 Brief Overview of Documents for New Users... 3 Supported Versions... 3 Configuration... 4 Manual Configuration 4 Automatic Configuration 4 Quick Configuration Guide 5 Hooks & Internals in ecos 5 Features... 6 Display of Kernel Resources 6 Task Stack Coverage 6 Task Related Breakpoints 7 Task Context Display 7 SMP Support 8 Dynamic Task Performance Measurement 8 Task Runtime Statistics 9 Task State Analysis 10 Function Runtime Statistics 11 ecos specific Menu 13 ecos Commands... 14 TASK.SCHEDuler Display scheduler information 14 TASK.THRead Display threads 15 TASK.TASKState Mark task state words 16 ecos PRACTICE Functions... 17 Frequently-Asked Questions... 17 RTOS Debugger for ecos 1

RTOS Debugger for ecos Version 24-May-2016 Overview B::TASK.THRead magic id prio state entryptr name 00020BC0 4. 17. SLEEPING 000146D4 CliTask 00022910 1. 31. RUNNING 0001AFD4 Idle Thread 000234A8 2. 10. EXITED 0001ECD4 main 00020B00 3. 11. SLE B::TASK.SCHEDuler magic type 000231B0 Multi-Level Queue base current thread thread switches lock counter 00022910 13. 0. implementation multi-level run queues -" 32. index head list -" 31. 00022910 end of list The RTOS Debugger for ecos contains special extensions to the TRACE32 Debugger. This manual describes the additional features, such as additional commands and statistic evaluations. ecos uses the term Threads. If not otherwise specified, the TRACE32 term Task corresponds to ecos threads. RTOS Debugger for ecos 2 Overview

Brief Overview of Documents for New Users Architecture-independent information: Debugger Basics - Training (training_debugger.pdf): Get familiar with the basic features of a TRACE32 debugger. T32Start (app_t32start.pdf): T32Start assists you in starting TRACE32 PowerView instances for different configurations of the debugger. T32Start is only available for Windows. General Commands (general_ref_<x>.pdf): Alphabetic list of debug commands. Architecture-specific information: Processor Architecture Manuals : These manuals describe commands that are specific for the processor architecture supported by your debug cable. To access the manual for your processor architecture, proceed as follows: - Choose Help menu > Processor Architecture Manual. RTOS Debugger (rtos_<x>.pdf): TRACE32 PowerView can be extended for operating systemaware debugging. The appropriate RTOS manual informs you how to enable the OS-aware debugging. Supported Versions Currently ecos is supported for the following versions: ecos V1.3, V2.0 and V3.0 on ARM/Cortex, ColdFire, MIPS, NIOS-II and PowerPC RTOS Debugger for ecos 3 Brief Overview of Documents for New Users

Configuration The TASK.CONFIG command loads an extension definition file called ecos.t32 (directory demo/ <processor>/kernel/ecos ). It contains all necessary extensions. Automatic configuration tries to locate the ecos internals automatically. For this purpose all symbol tables must be loaded and accessable at any time the RTOS debugger is used. If a system symbol is not available or if another address should be used for a specific system variable then the corresponding argument must be set manually with the appropriate address. In this case, use the manual configuration, which can require some additional arguments. If you want to have dual port access for the display functions (display On The Fly ), you have to map emulation or shadow memory to the address space of all used system tables. Manual Configuration Manual configuration is not necessary for the ecos RTOS debugger. Automatic Configuration For system resource display and trace functionality, you can do an automatic configuration of the RTOS debugger. For this purpose it is necessary, that all system internal symbols are loaded and accessable at any time, the RTOS debugger is used. Each of the task.config arguments can be substituted by '0', which means, that this argument will be searched and configured automatically. For a full automatic configuration omit all arguments: Format: TASK.CONFIG ecos If a system symbol is not available, or if another address should be used for a specific system variable, then the corresponding argument must be set manually with the appropriate address. (see Manual Configuration). See also the example demo/<processor>/kernel/ecos/ecos.cmm. RTOS Debugger for ecos 4 Configuration

Quick Configuration Guide To get a quick access to the features of the ecos RTOS debugger with your application, follow the following roadmap: 1. Copy the files ecos.t32 and ecos.men to your project directory (from TRACE32 directory demo/<processor>/kernel/ecos ). 2. Start the TRACE32 Debugger. 3. Load your application as normal. 4. Execute the command TASK.CONFIG ecos (see Automatic Configuration ). 5. Execute the command MENU.ReProgram ecos (see ecos Specific Menu ). 6. Start your application. Now you can access the ecos extensions through the menu. In case of any problems, please read carefully the previous Configuration chapters. Hooks & Internals in ecos No hooks are used in the kernel. For detecting the current running task, the kernel symbol Cyg_Scheduler_Base::current_thread is used. For retrieving the kernel data structures, the RTOS debugger uses the global kernel symbols and structure definitions (Cyg_*). Ensure, that access to those structures is possible, every time when features of the RTOS debugger are used. The ecos RTOS debugger needs a linked thread list to operate correctly. To ensure this, the configuration of ecos must include the #define macro CYGVAR_KERNEL_THREADS_LIST. Using the ecos Configuration Tool, enable Configuration -> ecos kernel -> Thread-related options -> Keep track of all threads using a linked list. RTOS Debugger for ecos 5 Configuration

Features The RTOS debugger for ecos supports the following features. Display of Kernel Resources The extension defines new PRACTICE commands to display various kernel resources. Information on the following ecos components can be displayed: - scheduler TASK.SCHEDuler - threads TASK.THRead For a detailed description of each command refer to the chapter ecos Commands. When working with emulation memory or shadow memory, these resources can be displayed On The Fly, i.e. while the target application is running, without any intrusion to the application. If using this dual port memory feature, be sure that emulation memory is mapped to all places, where ecos holds its tables. When working only with target memory, the information will only be displayed, if the target application is stopped. Task Stack Coverage For stack usage coverage of the tasks, you can use the TASK.STacK command. Without any parameter, this command will set up a window with all active tasks. If you specify only a magic number as parameter, the stack area of this task will be automatically calculated. To use the calculation of the maximum stack usage, flag memory must be mapped to the task stack areas, when working with the emulation memory. When working with the target memory, a stack pattern must be defined with the command TASK.STacK.PATtern (default value is zero). To add/remove one task to/from the task stack coverage, you can either call the TASK.STacK.ADD rsp. TASK.STacK.ReMove commands with the task magic number as parameter, or omit the parameter and select from the task list window. It is recommended, to display only the tasks, that you are interested in, because the evaluation of the used stack space is very time consuming and slows down the debugger display. RTOS Debugger for ecos 6 Features

Task Related Breakpoints Any breakpoint set in the debugger can be restricted to fire only, if a specific task hits that breakpoint. This is especially useful, when debugging code which is shared between several tasks. To set a task related breakpoint, use the command: Break.Set <address> <range> [/<option>] /TASK <task> Set task related breakpoint. Use a task magic, id or name for <task>. For some processors it is possible to set a task related on-chip breakpoint. In this case the breakpoint is nonintrusive. Otherwise, the task related breakpoint will be implemented by a conditional breakpoint inside the debugger. I.e., the target will always halt at that breakpoint, but the debugger immediately resumes execution, if the current running task is not equal to the specified task. Please note, that in this case this feature impacts the real-time behavior of the application. For a general description of the Break.Set command, please see its documentation. When single stepping, the debugger halts on the next instruction, regardless which task hits this breakpoint. When debugging shared code, stepping over an OS function may lead to a task switch and coming back to the same place - but with a different task. If you want to stick the debugging within the current task you can set up the debugger with SETUP.StepWithinTask ON to use task related breakpoints for single stepping. In this case, single stepping will always stay within the current task. Other tasks using the same code will not be halted on these events. If you want to halt program execution as soon as a specific task is scheduled to run by the OS, you can use the Break.SetTask command. Task Context Display You are able to switch the whole viewing context to a currently not executing task. This means, that all register and stack related information (such as Register, Data.List, Frame etc.) will be shown according to this task. Be aware, that this is only for displaying information. When continuing debugging the application (step or go), the debugger will switch back to the current context. For displaying a specific task context, use the command: Frame.TASK [<task>] Display task context. Specify a task magic or a task name (in double quotes) as parameter. To switch back to the current context, omit all parameters. For displaying the call stack of a specific task, you can use the following command: Frame /Task <task> Display call stack of a task. RTOS Debugger for ecos 7 Features

If you d like to see the application code, where the task was preempted, execute the Frame /Caller /Task <task> window. Double click on the line showing the OS service call. SMP Support The RTOS Debugger supports symmetric multiprocessing (SMP). An SMP system consists of multiple similar CPU cores. The operating system schedules the threads that are ready to execute on any of the available cores, so that several threads may execute in parallel. Consequently an application may run on any available core. Moreover, the core, at which the application runs, may change in time. To support such SMP systems, the debugger allows a system view, where one PowerView UI is used for the whole system, i.e. for all cores that are used by the SMP OS. Please see the target guides how to set up the debugger with SMP support. All core relevant windows (e.g. Register) show the information of the actual core. The status line of the debugger indicates the actual core. You can switch the core view with the CORE command. Target breaks, be it manual breaks or halting at a breakpoint, halt all cores synchronously. Similarly, a Go starts all cores synchronously. When halting at a breakpoint, the debugger automatically switches the view to the core, that hit the breakpoint. Because it is undeterminated, at which core an application runs, breakpoints are set on all cores simultaneously i.e. the breakpoint will always hit independently on which core the application actually runs. Dynamic Task Performance Measurement The debugger may execute a dynamic performance measurement by evaluating the current running task in changing time intervals. Start the measurement with the commands PERF.Mode TASK and PERF.Arm, and view the contents with PERF.ListTASK. The evaluation is done by reading the magic location (= current running task) in memory. This memory read may be non-intrusive or intrusive, depending on the PERF.METHOD used. If PERF collects the PC for function profiling of processes in MMU based operating systems (SYStem.Option MMUSPACES ON), then you need to set PERF.MMUSPACES, too. For a general description of the PERF command, refer to General Commands Reference Guide P (general_ref_p.pdf). RTOS Debugger for ecos 8 Features

Task Runtime Statistics NOTE: This feature is only available, if your debugger equipment is able to trace task switches (see below). Out of the recordings done by the Trace (if available), the debugger is able to evaluate the time spent in a task and display it statistically and graphically. To do this, the debugger must be able to detect the task switches out of the trace, i.e. the task switches need to be recorded. Usually, there s a variable in the system that holds the current running task. By recording the accesses to this memory location (aka magic location), the debugger detects a task switch by a change of this variable. Please note, that the debugger equipment must be able to trace memory data accesses in this case, program flow trace is not sufficient. If a hardware trace solution is available, that provides a so-called context ID (e.g. ARM11 ETM), and if this context ID is served by the operating system, it is sufficient to enable the recording of the context ID (owner cycle); no data trace is needed. To do a selective recording on task switches with state analyzers (ICE and FIRE), use the following PRACTICE commands: ; Mark the magic location with an Alpha breakpoint Break.Set TASK.CONFIG(magic)++(TASK.CONFIG(magicsize)-1) /Alpha ; Program the Analyzer to record only task switches Analyzer.ReProgram ( Sample.Enable if AlphaBreak&&Write ) To do a selective recording on task switches with flow traces (ICD, e.g. ETM and NEXUS trace), based on the data accesses, use the following PRACTICE command: ; Enable tracing only on the magic location Break.Set TASK.CONFIG(magic) /TraceEnable To do a selective recording on task switches with flow traces, based on the context ID, use the following PRACTICE command: ; Enable tracing of the context ID (e.g. 32bit) ETM.ContextID 32 RTOS Debugger for ecos 9 Features

To evaluate the contents of the trace buffer, use these commands: Trace.List List.TASK DEFault Trace.STATistic.TASK Trace.Chart.TASK Trace.PROfileSTATistic.TASK Trace.PROfileChart.TASK Trace.FindAll Address task.config(magic) Trace.FindAll CYcle owner OR CYcle context Display trace buffer and task switches Display task runtime statistic evaluation Display task runtime timechart Display task runtime within fixed time intervals statistically Display task runtime within fixed time intervals as colored graph Display all data access records to the magic location Display all context ID records The start of the recording time, when the calculation doesn t know, which task is running, is calculated as (unknown). All kernel activities up to the task switch are added to the calling task. The start of the recording time, when the calculation doesn t know, which task is running, is calculated as (root). Task State Analysis NOTE: This feature is only available, if your debugger equipment is able to trace memory data accesses (program flow trace is not sufficient). The time different tasks are in a certain state (running, ready, suspended or waiting) can be evaluated statistically or displayed graphically. This feature needs recording of all accesses to the status words of all tasks. Additionally, the accesses to the current task pointer (=magic) are needed. Adjust your trace logic to record all data write accesses, or limit the recorded data to the area where all TCBs are located (plus the current task pointer). To do a selective recording on task states with state analyzers (ICE or FIRE), use TASK.TASKState, if available, to mark the status words with Alpha breakpoints. Run the following PRACTICE script: RTOS Debugger for ecos 10 Features

; Mark the magic location with an Alpha breakpoint Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha ; Mark all task state words with Alpha breakpoints TASK.TASKState ; Program the Analyzer to record task state transitions Analyzer.ReProgram ( Sample.Enable if AlphaBreak&&Write ) To do a selective recording on task states with flow traces (ICD, e.g. ETM and NEXUS trace), just enable the recording of all data write cycles. To evaluate the contents of the trace buffer, use these commands: Trace.STATistic.TASKState Trace.Chart.TASKState Display task state statistic Display task state timechart The start of the recording time, when the calculation doesn t know, which task is running, is calculated as (unknown). All kernel activities up to the task switch are added to the calling task. The start of the recording time, when the calculation doesn t know, which task is running, is calculated as (root). Function Runtime Statistics NOTE: This feature is only available, if your debugger equipment is able to trace memory data accesses (program flow trace is not sufficient). All function related statistic and timechart evaluations can be used with task specific information. The function timings will be calculated dependent on the task, that called this function. To do this, additionally to the function entries and exits, the task switches must be recorded. To do a selective recording on task related function runtimes with state analyzers (ICE and FIRE), use the following PRACTICE commands: RTOS Debugger for ecos 11 Features

; Mark the magic location with an Alpha breakpoint Break.Set TASK.CONFIG(magic)++(TASK.CONFIG(magicsize)-1) /Alpha ; Mark the function entries/exits with Alpha/Beta breakpoints Break.SetFunc ; Program the Analyzer to record function entries/exits and task switches Analyzer.ReProgram ( Sample.Enable if AlphaBreak BetaBreak Mark.A if AlphaBreak Mark.B if BetaBreak ) To do a selective recording on task related function runtimes with flow traces (ICD, e.g. ETM and NEXUS trace), use the following PRACTICE command: ; Enable tracing only on the magic location Break.Set TASK.CONFIG(magic) /TraceData To evaluate the contents of the trace buffer, use these commands: Trace.List List.TASK FUNC Trace.STATistic.TASKFunc Trace.STATistic.TASKTREE Trace.STATistic.sYmbol /SplitTASK Trace.Chart.TASKFunc Trace.Chart.sYmbol /SplitTASK Display function nesting Display function runtime statistic Display functions as call tree Display flat runtime analysis Display function timechart Display flat runtime timechart The start of the recording time, when the calculation doesn t know, which task is running, is calculated as (unknown). All kernel activities up to the task switch are added to the calling task. RTOS Debugger for ecos 12 Features

ecos specific Menu The file ecos.men contains an alternate menu with ecos specific topics. Load this menu with the MENU.ReProgram command. You will find a new pull-down menu called ecos. The Display topics launch the kernel resource display windows. The Stack Coverage submenu starts and resets the ecos specific stack coverage, and provides an easy way to add or remove tasks from the stack coverage window. The Trace pull-down menu is extended. In the List submenu, you can choose for an trace list window showing only task switches (if any) or task switches together with default display. The 'Perf' menu contains additional submenus for task runtime statistics, task related function runtime statistics or statistics on task states. RTOS Debugger for ecos 13 Features

ecos Commands TASK.SCHEDuler Display scheduler information Format: TASK.SCHEDuler Displays detailed information about the used scheduler. B::TASK.SCHEDuler magic type 000231B0 Multi-Level Queue base current thread thread switches lock counter 00020B00 1. 0. implementation multi-level run queues -" 32. index head list -" 11. 00020B00 end of list -" 17. 00020BC0 end of list -" 31. 00022910 end of list magic is an unique id, used by the RTOS Debugger to identify the scheduler (address of the scheduler object). The fields magic and head are mouse sensitive, double clicking on them opens appropriate windows. RTOS Debugger for ecos 14 ecos Commands

TASK.THRead Display threads Format: TASK.THRead [<thread>] Displays the thread table of ecos or detailed information about one specific thread. Without any arguments, a table with all created threads will be shown. Specify a thread name or magic number to display detailed information on that thread. B::TASK.THRead magic id prio state entryptr name 00020BC0 4. 17. SLEEPING 000146D4 CliTask 00022910 1. 31. RUNNING 0001AFD4 Idle Thread 000234A8 2. 10. EXITED 0001ECD4 main 00020B00 3. 11. SLEEPING 00014C20 SerialTask B::TASK.THRead "SerialTask" magic id prio state entryptr name 00020B00 3. 11. SLEEPING 00014C20 SerialTask susp count wake count wait info sleep reason wake reason 0. 0. 0006F170 WAIT NONE mutex count prio inherited prio original 0. FALSE stack base size limit ptr 0006D218 00002000 0006D218 0006F090 context current +' exception control: global +' timer: 00020B48 entry ptr entry data label 00014C20 00001234 SerialTask magic is an unique id, used by the RTOS Debugger to identify a specific thread (address of the thread object). The magic field and various other fields are mouse sensitive. Double-clicking on them opens appropriate windows. Right clicking on the magic will show a local menu. RTOS Debugger for ecos 15 ecos Commands

TASK.TASKState Mark task state words Format: TASK.TASKState This command sets Alpha breakpoints on all tasks status words. The statistic evaluation of task states (see Task State Analysis) requires recording of the accesses to the task state words. By setting Alpha breakpoints to this words, and selectively recording Alpha s, you can do a selective recording of task state transitions. Because setting the Alpha breakpoints by hand is very hard to do, this utility command sets automatically the Alpha s to the status words of all tasks currently created. It does NOT set breakpoints to tasks, that were deleted or haven t yet been created. RTOS Debugger for ecos 16 ecos Commands

ecos PRACTICE Functions There are special definitions for ecos specific PRACTICE functions. TASK.CONFIG(magic) Returns the address for the magic number TASK.CONFIG(magicsize) Returns the size of the magic number (1, 2 or 4) Frequently-Asked Questions Problems with Symbol Addresses in ecos Why do all ecos menus/commands report: 'Sorry: Couldn't get symbol addresses' The kernel symbols may not be present or not demangled correctly. Ensure, that the kernel is compiled with debug information, and symbols are loaded. For newer software the gcc 3.x compiler is loaded by default. In case of problems with a gcc 3.x compiler, try loading the ELF file with /gcc3 option. RTOS Debugger for ecos 17 ecos PRACTICE Functions