SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
A New Paradigm in Linux Debug


              September 2008




                      By

                    Art Lee

     Vice President of Business Development

              Viosoft Corporation




          © 2008 Viosoft Corporation
              All rights reserved.
The Current Paradigm

No one today would argue against the fact that Linux has taken the embedded Real
Time Operating System (RTOS) space by storm. More and more applications that
historically required either a commercially available RTOS, or one that was internally
created and maintained, are being replaced with a Linux-based platform.

The reasons for this movement are varied from one company to the next, but some of
the most common factors are:

    1. The availability of source code to the Operating System

    2. A wealth of device drivers and communication stacks

    3. An increasingly available pool of software engineers that are Linux proficient

    4. A perceived cost advantage achieved with removal of the OS royalty component
       from the products’ bill of materials

    5. Semiconductor suppliers now provide a Linux port to their SoC based hardware
       reference platform, along with tool chains and a reference distribution

To take full advantage of the Linux operating system, Original Equipment Manufacturers
(OEMs) have a choice of engaging with a commercial Linux vendor or adding additional
engineering capability in-house. Both models have proven successful, but each carries
its own specific costs.

Regardless of the direction the OEM chooses, the typical debug model available for
their engineers is the same…a command line-based, client server environment based
on GDB (GNU Debugger). This model is illustrated in Figure 1, which depicts an
instantiation of GDBSERVER attached and running on each Linux process under debug
on the target. Each GDBSERVER is communicating with the host through an Ethernet
port.

In addition, it is important to understand that in this approach to Linux debug, the
standard Linux kernel is replaced with a “static” version specifically built with debugging
code instrumented throughout. In addition and with only a few exceptions, all debug
communication to the target via KGDB is limited to an RS232 serial link.

This approach provides an additional challenge to the developer that is using the
instrumented version of the Linux kernel by actually altering the performance of the
target under debug from the “released version” that will eventually ship with the product.
Figure 1: Standard Linux Debug Model

While this is by default the accepted Linux debug environment, there are some well
understood limitations to this approach. For example, applications that consist of
multiple processes will require multiple copies of GDBSERVER running in the often
limited target memory. This can affect the performance of the target under debug.
There have been cases of a 50%+ degradation of target performance.

Even in the best case scenario where all kernel instrumentations and communication
channels are available, there are still areas of the code that are inherently inaccessible
under this debugging paradigm. The illustrated “problem” areas in Figure 2 have
presented multiple challenges to kernel and application developers. These areas
include the large amount of threads under each process and kernel loadable modules
that are code and data position independent. While it is possible for skilled developers
to scaffold an environment based on existing technologies to address the debugging
needs in these areas, such an environment has been shown to be very user-unfriendly
and non-scaleable under load.

Consider the case of Linux kernel loadable modules, which consist of an initialization
routine to be invoked at module loading time. Current debug paradigms suggest that
such modules be loaded, and their code and data offsets then be adjusted (manually
and automatically) within the debugger. However, by this time, the initialization code of
the module has already been executed and there is no possible way to debug a
problem in this area of the code. Another use scenario involves shared libraries, which
are often not handled well by GDBSERVER or equivalents.
Given these obstacles, it is not uncommon that many engineers to resort to printf (user
  space) and printk (kernel space) as their primary debugging aids. Not withstanding the
  “ugliness” issues and time overhead of recompiling and linking in these messages, it is
  very common for such debug “instrumentations” to sufficiently skew the behavior of the
  code in a manner that leads to different behaviors in the program, with or without such
  code in place.




Problem
Areas




                               Figure 2: The “Problem” Areas


  The Arriba Debugger: A Holistic Approach to Debugging Linux

  The Arriba Debugger is designed from the ground up to provide a holistic approach to
  debugging embedded Linux and to be completely agnostic to the hardware platform
  architecture or version of Linux under development. In place of GDBSERVER and
  KGDB, VMON (a dynamically loadable, demand-based debug agent) runs on the
  embedded Linux target. Communicating with the Arriba Debugger on the host, VMON
  provides total visibility of the Linux target, from user-level threads to the static kernel.

  The VMON module has a very small memory footprint and even when active, has an
  almost immeasurable performance impact on the running system. At less than 250Kb
  in size, VMON is able to provide end-to-end debugging of the target over a single
  Ethernet connection.
Figure 3: The Arriba Solution

Arriba = “No Problem” Areas
“No Problem” 1 - Loadable Modules

Through the Arriba Debugger, VMON can be configured to signal the host when a
kernel module of a given property is loaded on the target. Upon the reception of this
signal, the Arriba Debugger will automatically and correctly load the symbol information
of the respective module, and place control at the entry point to the module initialization
function. The user can now have full debug control of the module in question over a
high-speed Ethernet link.

Traditionally, debugging of the Linux kernel or module (when it’s possible) is
accomplished with KGDB or JTAG, which completely halts the target under debug. In
contrast, an important feature of VMON is its ability to provide the same level of
debugging non-preemptively. In other words, the Linux kernel on the target continues to
handle inbound and outbound network traffic, multimedia data, and other time-critical
activities that are crucial in maintaining the appearance of normal execution to the
outside world. This ability is critical to many data and media-centric applications such
as set-top boxes, digital media appliances, and high-speed networking switches and
routers.

“No Problem” 2: Debugging of Multiple Processes; Parent/Child Processes

In many instances, Linux application programmers need to create applications that
involve multiple processes. Such processes are spawned from a single parent process
earlier in the application initialization sequence. A frequent challenge revolves around
the need to set breakpoint(s) in the child process and eventually hit such breakpoints
when the child process is created and running. Straightforward as it may sound; this is
an unsupported use-case with any debugging tools for Linux today, embedded or
otherwise. As a workaround, developers often find themselves manually inserting
instrumented code in the child process with an infinite loop that is gated by a variable
initially set to ‘true’. This enables debugging tools such as GDBSERVER to attach to
the child process in question, change the value of the gating variable to ‘false’ to
unblock to loop, and resume debugging.

Because VMON has ultimate visibility into the Linux target, events such as process
creations result in a notifying signal being sent to the Arriba Debugger on the host. The
Arriba Debugger, upon determining that a breakpoint is pending for the child process,
transmits the proper run-control sequence to ensure that such a breakpoint is set in the
child process code space.

“No Problem” 3: Debugging Kernel Drivers and Shared Libraries… Production
Released Kernel

Depending on the scope and breadth of the application, the list of Linux debug “problem
areas” can range anywhere from the inability of the programmer to use the debug tools
on his or her deployment platforms due to footprint and performance constraints
imposed by debugging techniques, to the tedious and error-prone workarounds that
result in much wasted time and increased frustrations. The Arriba Debugger provides
an in-depth solution to these problems, and beyond.

As a final example, consider the need for programmers and field application engineers
to diagnose and fix bugs manifested in deployment. Under such conditions, the target
platform is subject to severely limited debugging and communication access. VMON as
a dynamically loadable module can be configured to be launched on already-deployed
systems. Thus, VMON, with its ability to effectively debug and diagnose such systems
with minimal intrusion, has time and time again proven to be an indispensable tool
through all stages of the product lifecycle.


Eclipse Integrated Development Environment (IDE) Plug-in Support:

Viosoft Corporation recently announced an enhancement to the Arriba Debugger to
support the latest open source Eclipse environment. The powerful Eclipse based
Integrated Development Environment (IDE) is the cockpit for existing and future tools for
developing your Linux based design. This seamless integration with Eclipse provides
the developer with a complete Linux development and debug environment.

In addition to the Arriba Linux Debugger, there is also a new profiling tool called the
Arriba Linux Event Analyzer (LEA) that is also a plug in to an Eclipse IDE. This new tool
provides the ability to see all Linux events occurring on the target by capturing the
information and displaying them in a time domain format. The Arriba LEA collects and
provides a significant amount of information about the Linux system including context
switches among processes and threads, signals, and elapsed execution time.
Simultaneously, LEA incurs a minimal impact on the overall CPU cycles and memory
footprint. LEA light-weighted-ness, coupled with its ability to dynamically add and
remove instrumentation points on a production-ready running Linux system make LEA
an ideal performance analysis and debugging tool, both for in-house development and
for field deployment.

An example result of this format is shown in Figure 4 below. Within this view, the user
can zoom in and out to gain a detailed understanding of how their code behaves and the
tasks execute in both the kernel and user space areas. Providing the ability to measure
latencies, response times to external events and even the load each event represents
on the running system. This information is also available in a “raw” format that can
easily be imported to Microsoft Excel for additional post processing and analysis.

Because no two end-user applications are alike, each developer or team of developers
within organization is likely to be interested in collecting and visualizing different aspects
of the system with LEA. The needs for having an open-ended analysis tools leads to a
design of LEA that is highly customizable. By creating and deploying their own kernel
module plug-in to LEA, developers can easily and rapidly gain a level of visibility into
their applications and system that not possible with other close-ended tools.

LEA uses the same instrumentation technology employed by VMON in the Arriba Linux
Debugger, which means that no debug patches or special compilation of the Linux
kernel is required. This capability makes LEA an ideal choice for deployment on
production systems.

The combination of the Arriba Linux Debugger, Arriba LEA and the Eclipse IDE provides
our customers with a very comprehensive and powerful Linux development environment.
This solution was designed to shorten our customers’ time to market while providing
developers the ability to create a level of quality in their code that is unavailable from
any other solution.




                                       Figure 4
                            The Linux Event Analyzer (LEA)
Eclipse View


Seeing is believing!

As with any new technology solution to a well known challenge, it is reasonable for
prudent readers to cast doubts and suspicions on the claims put forth in this article.

Viosoft Corporation welcomes you to contact us for a demonstration, discussion, and
even a test drive of our products. Regardless of the processor architecture you are
using or the version/source of the Linux under development, the Arriba Debugger is
your best solution. Whether you are using a uni-processor version of Linux or a SMP
version, you can take full advantage of Arriba.

So, put aside the “Hello World” examples that others demonstrate their tools on and
bring on your million-line plus applications and dynamically loadable driver code and put
us to the test. You will be glad that you did!
Copyright © 2008 Viosoft Corporation All rights reserved.

Unpublished rights (if any) reserved under the copyright laws of the United States of America and other
countries.

This document contains information that is proprietary to Viosoft Corporation (“Viosoft”). Any copying,
reproducing, modifying or use of this information (in whole or in part) that is not expressly permitted in
writing by Viosoft or an authorized third party is strictly prohibited. At a minimum, this information is
protected under unfair competition and copyright laws. Violations thereof may result in criminal penalties
and fines.

Any document provided in source format (i.e., in a modifiable form such as in FrameMaker or Microsoft
Word format) is subject to use and distribution restrictions that are independent of and supplemental to
any and all confidentiality restrictions. UNDER NO CIRCUMSTANCES MAY A DOCUMENT PROVIDED
IN SOURCE FORMAT BE DISTRIBUTED TO A THIRD PARTY IN SOURCE FORMAT WITHOUT THE
EXPRESS WRITTEN PERMISSION OF VIOSOFT CORPORATION

Viosoft reserves the right to change the information contained in this document to improve function,
design or otherwise. Viosoft does not assume any liability arising out of the application or use of this
information, or of any error or omission in such information.

Any warranties, whether express, statutory, implied or otherwise, including but not limited to the implied
warranties of merchantability or fitness for a particular purpose, are excluded. Except as expressly
provided in any written license agreement from Viosoft or an authorized third party, the furnishing of this
document does not give recipient any license to any intellectual property rights, including any patent
rights that cover the information in this document.

The information contained in this document shall not be exported, re-exported, transferred, or released,
directly or indirectly, in violation of the law of any country or international law, regulation, treaty, Executive
Order, statute, amendments or supplements thereto. Should a conflict arise regarding the export re-
export, transfer, or release of the information contained in this document, the laws of the United States of
America shall be the governing law.

The information contained in this document constitutes one or more of the following: commercial
computer software, commercial computer software documentation or other commercial items. If the user
of this information, or any related documentation of any kind, including related technical data or manuals,
is an agency, department, or other entity of the United States government (“Government”), the use,
duplication, reproduction, release, modification, disclosure, or transfer of this information, or any related
documentation of any kind, is restricted in accordance with Federal Acquisition Regulation 12.212 for
civilian agencies and Defense Federal Acquisition Regulation Supplement 227.7202 for military agencies.
The use of this information by the Government is further restricted in accordance with the terms of the
license agreement(s) and/or applicable contract terms and conditions covering this information from
Viosoft or an authorized third party.

Arriba Linux Debugger, Linux Event Analyzer, LEA, VMON, VMON are trademarks or registered
trademarks of Viosoft Corporation in the United States and other countries. All other trademarks referred
to herein are the property of their respective owners.

Viosoft to insert trademarks

Contenu connexe

Tendances

High level programming of embedded hard real-time devices
High level programming of embedded hard real-time devicesHigh level programming of embedded hard real-time devices
High level programming of embedded hard real-time devicesMr. Chanuwan
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPrimesoftinc
 
Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 MediaPlatform
 
B Labs / Mobile Virtualization for the ARM Architecture
B Labs / Mobile Virtualization for the ARM ArchitectureB Labs / Mobile Virtualization for the ARM Architecture
B Labs / Mobile Virtualization for the ARM ArchitectureB Labs
 
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2Susan Yoskin
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel Corporation
 
Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linuxsheilamia
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : NotesSubhajit Sahu
 
TotalView ReplayEngine Tech Audit
TotalView ReplayEngine Tech AuditTotalView ReplayEngine Tech Audit
TotalView ReplayEngine Tech AuditTotalviewtech
 
Keil tutorial
Keil tutorialKeil tutorial
Keil tutorialanishgoel
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!goodfriday
 
9.oo languages
9.oo languages9.oo languages
9.oo languagesAPU
 
Developing Safety-Critical Java Applications with oSCJ
Developing Safety-Critical Java Applications with oSCJ Developing Safety-Critical Java Applications with oSCJ
Developing Safety-Critical Java Applications with oSCJ Aleš Plšek
 

Tendances (19)

RTF - Prasad bhatt
RTF - Prasad bhattRTF - Prasad bhatt
RTF - Prasad bhatt
 
High level programming of embedded hard real-time devices
High level programming of embedded hard real-time devicesHigh level programming of embedded hard real-time devices
High level programming of embedded hard real-time devices
 
res01
res01res01
res01
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
 
Prasad_CTP
Prasad_CTPPrasad_CTP
Prasad_CTP
 
Streaming Video in the Fortune 500
Streaming Video in the Fortune 500 Streaming Video in the Fortune 500
Streaming Video in the Fortune 500
 
B Labs / Mobile Virtualization for the ARM Architecture
B Labs / Mobile Virtualization for the ARM ArchitectureB Labs / Mobile Virtualization for the ARM Architecture
B Labs / Mobile Virtualization for the ARM Architecture
 
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
RDZ for Cobol Programmers slides 7 14 Debugger deep dive final2
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
 
Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linux
 
Chapter2 application
Chapter2 applicationChapter2 application
Chapter2 application
 
The Concurrency Challenge : Notes
The Concurrency Challenge : NotesThe Concurrency Challenge : Notes
The Concurrency Challenge : Notes
 
TotalView ReplayEngine Tech Audit
TotalView ReplayEngine Tech AuditTotalView ReplayEngine Tech Audit
TotalView ReplayEngine Tech Audit
 
Keil tutorial
Keil tutorialKeil tutorial
Keil tutorial
 
Android
AndroidAndroid
Android
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
Build Applications on the Microsoft Platform Using Eclipse, Java, Ruby and PHP!
 
9.oo languages
9.oo languages9.oo languages
9.oo languages
 
Developing Safety-Critical Java Applications with oSCJ
Developing Safety-Critical Java Applications with oSCJ Developing Safety-Critical Java Applications with oSCJ
Developing Safety-Critical Java Applications with oSCJ
 

Similaire à A New Paradigm In Linux Debug From Viosoft

Migration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsMigration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsStefan Kolb
 
How to write shared libraries!
How to write shared libraries!How to write shared libraries!
How to write shared libraries!Stanley Ho
 
Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Massimo Talia
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Dockerkushalsingh007
 
Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesF5 Networks
 
Converting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsConverting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsDevOps for Enterprise Systems
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Design World
 
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...Edge AI and Vision Alliance
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Developing Real-Time Systems on Application Processors
Developing Real-Time Systems on Application ProcessorsDeveloping Real-Time Systems on Application Processors
Developing Real-Time Systems on Application ProcessorsToradex
 
Crossing the river by feeling the stones from legacy to cloud native applica...
Crossing the river by feeling the stones  from legacy to cloud native applica...Crossing the river by feeling the stones  from legacy to cloud native applica...
Crossing the river by feeling the stones from legacy to cloud native applica...OPNFV
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dmActian Corporation
 
How Virtual Compilation Transforms Static Code Analysis
How Virtual Compilation Transforms Static Code AnalysisHow Virtual Compilation Transforms Static Code Analysis
How Virtual Compilation Transforms Static Code AnalysisCheckmarx
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)IRJET Journal
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentDevOps.com
 

Similaire à A New Paradigm In Linux Debug From Viosoft (20)

Migration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud PlatformsMigration Effort in the Cloud - The Case of Cloud Platforms
Migration Effort in the Cloud - The Case of Cloud Platforms
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
How to write shared libraries!
How to write shared libraries!How to write shared libraries!
How to write shared libraries!
 
Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.Do modernizing the Mainframe for DevOps.
Do modernizing the Mainframe for DevOps.
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Remote Web Desk
Remote Web DeskRemote Web Desk
Remote Web Desk
 
Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and services
 
Converting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right toolsConverting to the latest COBOL Compiler made simple with the right tools
Converting to the latest COBOL Compiler made simple with the right tools
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
 
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...
“Open Standards: Powering the Future of Embedded Vision,” a Presentation from...
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Developing Real-Time Systems on Application Processors
Developing Real-Time Systems on Application ProcessorsDeveloping Real-Time Systems on Application Processors
Developing Real-Time Systems on Application Processors
 
Crossing the river by feeling the stones from legacy to cloud native applica...
Crossing the river by feeling the stones  from legacy to cloud native applica...Crossing the river by feeling the stones  from legacy to cloud native applica...
Crossing the river by feeling the stones from legacy to cloud native applica...
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
How Virtual Compilation Transforms Static Code Analysis
How Virtual Compilation Transforms Static Code AnalysisHow Virtual Compilation Transforms Static Code Analysis
How Virtual Compilation Transforms Static Code Analysis
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 

Dernier

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Dernier (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

A New Paradigm In Linux Debug From Viosoft

  • 1. A New Paradigm in Linux Debug September 2008 By Art Lee Vice President of Business Development Viosoft Corporation © 2008 Viosoft Corporation All rights reserved.
  • 2. The Current Paradigm No one today would argue against the fact that Linux has taken the embedded Real Time Operating System (RTOS) space by storm. More and more applications that historically required either a commercially available RTOS, or one that was internally created and maintained, are being replaced with a Linux-based platform. The reasons for this movement are varied from one company to the next, but some of the most common factors are: 1. The availability of source code to the Operating System 2. A wealth of device drivers and communication stacks 3. An increasingly available pool of software engineers that are Linux proficient 4. A perceived cost advantage achieved with removal of the OS royalty component from the products’ bill of materials 5. Semiconductor suppliers now provide a Linux port to their SoC based hardware reference platform, along with tool chains and a reference distribution To take full advantage of the Linux operating system, Original Equipment Manufacturers (OEMs) have a choice of engaging with a commercial Linux vendor or adding additional engineering capability in-house. Both models have proven successful, but each carries its own specific costs. Regardless of the direction the OEM chooses, the typical debug model available for their engineers is the same…a command line-based, client server environment based on GDB (GNU Debugger). This model is illustrated in Figure 1, which depicts an instantiation of GDBSERVER attached and running on each Linux process under debug on the target. Each GDBSERVER is communicating with the host through an Ethernet port. In addition, it is important to understand that in this approach to Linux debug, the standard Linux kernel is replaced with a “static” version specifically built with debugging code instrumented throughout. In addition and with only a few exceptions, all debug communication to the target via KGDB is limited to an RS232 serial link. This approach provides an additional challenge to the developer that is using the instrumented version of the Linux kernel by actually altering the performance of the target under debug from the “released version” that will eventually ship with the product.
  • 3. Figure 1: Standard Linux Debug Model While this is by default the accepted Linux debug environment, there are some well understood limitations to this approach. For example, applications that consist of multiple processes will require multiple copies of GDBSERVER running in the often limited target memory. This can affect the performance of the target under debug. There have been cases of a 50%+ degradation of target performance. Even in the best case scenario where all kernel instrumentations and communication channels are available, there are still areas of the code that are inherently inaccessible under this debugging paradigm. The illustrated “problem” areas in Figure 2 have presented multiple challenges to kernel and application developers. These areas include the large amount of threads under each process and kernel loadable modules that are code and data position independent. While it is possible for skilled developers to scaffold an environment based on existing technologies to address the debugging needs in these areas, such an environment has been shown to be very user-unfriendly and non-scaleable under load. Consider the case of Linux kernel loadable modules, which consist of an initialization routine to be invoked at module loading time. Current debug paradigms suggest that such modules be loaded, and their code and data offsets then be adjusted (manually and automatically) within the debugger. However, by this time, the initialization code of the module has already been executed and there is no possible way to debug a problem in this area of the code. Another use scenario involves shared libraries, which are often not handled well by GDBSERVER or equivalents.
  • 4. Given these obstacles, it is not uncommon that many engineers to resort to printf (user space) and printk (kernel space) as their primary debugging aids. Not withstanding the “ugliness” issues and time overhead of recompiling and linking in these messages, it is very common for such debug “instrumentations” to sufficiently skew the behavior of the code in a manner that leads to different behaviors in the program, with or without such code in place. Problem Areas Figure 2: The “Problem” Areas The Arriba Debugger: A Holistic Approach to Debugging Linux The Arriba Debugger is designed from the ground up to provide a holistic approach to debugging embedded Linux and to be completely agnostic to the hardware platform architecture or version of Linux under development. In place of GDBSERVER and KGDB, VMON (a dynamically loadable, demand-based debug agent) runs on the embedded Linux target. Communicating with the Arriba Debugger on the host, VMON provides total visibility of the Linux target, from user-level threads to the static kernel. The VMON module has a very small memory footprint and even when active, has an almost immeasurable performance impact on the running system. At less than 250Kb in size, VMON is able to provide end-to-end debugging of the target over a single Ethernet connection.
  • 5. Figure 3: The Arriba Solution Arriba = “No Problem” Areas “No Problem” 1 - Loadable Modules Through the Arriba Debugger, VMON can be configured to signal the host when a kernel module of a given property is loaded on the target. Upon the reception of this signal, the Arriba Debugger will automatically and correctly load the symbol information of the respective module, and place control at the entry point to the module initialization function. The user can now have full debug control of the module in question over a high-speed Ethernet link. Traditionally, debugging of the Linux kernel or module (when it’s possible) is accomplished with KGDB or JTAG, which completely halts the target under debug. In contrast, an important feature of VMON is its ability to provide the same level of debugging non-preemptively. In other words, the Linux kernel on the target continues to handle inbound and outbound network traffic, multimedia data, and other time-critical activities that are crucial in maintaining the appearance of normal execution to the outside world. This ability is critical to many data and media-centric applications such as set-top boxes, digital media appliances, and high-speed networking switches and routers. “No Problem” 2: Debugging of Multiple Processes; Parent/Child Processes In many instances, Linux application programmers need to create applications that involve multiple processes. Such processes are spawned from a single parent process
  • 6. earlier in the application initialization sequence. A frequent challenge revolves around the need to set breakpoint(s) in the child process and eventually hit such breakpoints when the child process is created and running. Straightforward as it may sound; this is an unsupported use-case with any debugging tools for Linux today, embedded or otherwise. As a workaround, developers often find themselves manually inserting instrumented code in the child process with an infinite loop that is gated by a variable initially set to ‘true’. This enables debugging tools such as GDBSERVER to attach to the child process in question, change the value of the gating variable to ‘false’ to unblock to loop, and resume debugging. Because VMON has ultimate visibility into the Linux target, events such as process creations result in a notifying signal being sent to the Arriba Debugger on the host. The Arriba Debugger, upon determining that a breakpoint is pending for the child process, transmits the proper run-control sequence to ensure that such a breakpoint is set in the child process code space. “No Problem” 3: Debugging Kernel Drivers and Shared Libraries… Production Released Kernel Depending on the scope and breadth of the application, the list of Linux debug “problem areas” can range anywhere from the inability of the programmer to use the debug tools on his or her deployment platforms due to footprint and performance constraints imposed by debugging techniques, to the tedious and error-prone workarounds that result in much wasted time and increased frustrations. The Arriba Debugger provides an in-depth solution to these problems, and beyond. As a final example, consider the need for programmers and field application engineers to diagnose and fix bugs manifested in deployment. Under such conditions, the target platform is subject to severely limited debugging and communication access. VMON as a dynamically loadable module can be configured to be launched on already-deployed systems. Thus, VMON, with its ability to effectively debug and diagnose such systems with minimal intrusion, has time and time again proven to be an indispensable tool through all stages of the product lifecycle. Eclipse Integrated Development Environment (IDE) Plug-in Support: Viosoft Corporation recently announced an enhancement to the Arriba Debugger to support the latest open source Eclipse environment. The powerful Eclipse based Integrated Development Environment (IDE) is the cockpit for existing and future tools for developing your Linux based design. This seamless integration with Eclipse provides the developer with a complete Linux development and debug environment. In addition to the Arriba Linux Debugger, there is also a new profiling tool called the Arriba Linux Event Analyzer (LEA) that is also a plug in to an Eclipse IDE. This new tool provides the ability to see all Linux events occurring on the target by capturing the information and displaying them in a time domain format. The Arriba LEA collects and provides a significant amount of information about the Linux system including context switches among processes and threads, signals, and elapsed execution time. Simultaneously, LEA incurs a minimal impact on the overall CPU cycles and memory footprint. LEA light-weighted-ness, coupled with its ability to dynamically add and
  • 7. remove instrumentation points on a production-ready running Linux system make LEA an ideal performance analysis and debugging tool, both for in-house development and for field deployment. An example result of this format is shown in Figure 4 below. Within this view, the user can zoom in and out to gain a detailed understanding of how their code behaves and the tasks execute in both the kernel and user space areas. Providing the ability to measure latencies, response times to external events and even the load each event represents on the running system. This information is also available in a “raw” format that can easily be imported to Microsoft Excel for additional post processing and analysis. Because no two end-user applications are alike, each developer or team of developers within organization is likely to be interested in collecting and visualizing different aspects of the system with LEA. The needs for having an open-ended analysis tools leads to a design of LEA that is highly customizable. By creating and deploying their own kernel module plug-in to LEA, developers can easily and rapidly gain a level of visibility into their applications and system that not possible with other close-ended tools. LEA uses the same instrumentation technology employed by VMON in the Arriba Linux Debugger, which means that no debug patches or special compilation of the Linux kernel is required. This capability makes LEA an ideal choice for deployment on production systems. The combination of the Arriba Linux Debugger, Arriba LEA and the Eclipse IDE provides our customers with a very comprehensive and powerful Linux development environment. This solution was designed to shorten our customers’ time to market while providing developers the ability to create a level of quality in their code that is unavailable from any other solution. Figure 4 The Linux Event Analyzer (LEA)
  • 8. Eclipse View Seeing is believing! As with any new technology solution to a well known challenge, it is reasonable for prudent readers to cast doubts and suspicions on the claims put forth in this article. Viosoft Corporation welcomes you to contact us for a demonstration, discussion, and even a test drive of our products. Regardless of the processor architecture you are using or the version/source of the Linux under development, the Arriba Debugger is your best solution. Whether you are using a uni-processor version of Linux or a SMP version, you can take full advantage of Arriba. So, put aside the “Hello World” examples that others demonstrate their tools on and bring on your million-line plus applications and dynamically loadable driver code and put us to the test. You will be glad that you did!
  • 9. Copyright © 2008 Viosoft Corporation All rights reserved. Unpublished rights (if any) reserved under the copyright laws of the United States of America and other countries. This document contains information that is proprietary to Viosoft Corporation (“Viosoft”). Any copying, reproducing, modifying or use of this information (in whole or in part) that is not expressly permitted in writing by Viosoft or an authorized third party is strictly prohibited. At a minimum, this information is protected under unfair competition and copyright laws. Violations thereof may result in criminal penalties and fines. Any document provided in source format (i.e., in a modifiable form such as in FrameMaker or Microsoft Word format) is subject to use and distribution restrictions that are independent of and supplemental to any and all confidentiality restrictions. UNDER NO CIRCUMSTANCES MAY A DOCUMENT PROVIDED IN SOURCE FORMAT BE DISTRIBUTED TO A THIRD PARTY IN SOURCE FORMAT WITHOUT THE EXPRESS WRITTEN PERMISSION OF VIOSOFT CORPORATION Viosoft reserves the right to change the information contained in this document to improve function, design or otherwise. Viosoft does not assume any liability arising out of the application or use of this information, or of any error or omission in such information. Any warranties, whether express, statutory, implied or otherwise, including but not limited to the implied warranties of merchantability or fitness for a particular purpose, are excluded. Except as expressly provided in any written license agreement from Viosoft or an authorized third party, the furnishing of this document does not give recipient any license to any intellectual property rights, including any patent rights that cover the information in this document. The information contained in this document shall not be exported, re-exported, transferred, or released, directly or indirectly, in violation of the law of any country or international law, regulation, treaty, Executive Order, statute, amendments or supplements thereto. Should a conflict arise regarding the export re- export, transfer, or release of the information contained in this document, the laws of the United States of America shall be the governing law. The information contained in this document constitutes one or more of the following: commercial computer software, commercial computer software documentation or other commercial items. If the user of this information, or any related documentation of any kind, including related technical data or manuals, is an agency, department, or other entity of the United States government (“Government”), the use, duplication, reproduction, release, modification, disclosure, or transfer of this information, or any related documentation of any kind, is restricted in accordance with Federal Acquisition Regulation 12.212 for civilian agencies and Defense Federal Acquisition Regulation Supplement 227.7202 for military agencies. The use of this information by the Government is further restricted in accordance with the terms of the license agreement(s) and/or applicable contract terms and conditions covering this information from Viosoft or an authorized third party. Arriba Linux Debugger, Linux Event Analyzer, LEA, VMON, VMON are trademarks or registered trademarks of Viosoft Corporation in the United States and other countries. All other trademarks referred to herein are the property of their respective owners. Viosoft to insert trademarks