CDT: So you want me to use which debugger ... ?
Deciphering the CDT debugger alphabet soup.
Bruce Griffith
John Cortell (Freescale Semiconductor)
As the developer of an IDE based on CDT, you can choose to support:
The GNU debugger (gdb)
The Eclipse Debugger for C/C++ (EDC)
Debug Services Framework (DSF)
Target Communication Framework (TCF) agents
How do you decide which ones are right for your application?
This talk will present a guide describing how the current choices for remote debugging work together (or don’t) and a consumer’s view of the advantages of some of the possible combinations.
Presentation at Android Builders Summit 2012.
Based on the experience of working with ODM companies and SoC vendors, this session would discuss how to figure out the performance hotspot of certain Android devices and then improve in various areas including graphics and boot time. This session consists of the detailed components which seem to be independent from each other in traditional view. However, the situation changes a lot in Android system view since everything is coupled in a mass. Three frequently mentioned items in Android engineering are selected as the entry points: 2D/3D graphics, runtime, and boot time. Audience: Developers who work on Android system integration and platform enablement.
Linaro's mission is to make it easier and quicker for ARM partners to deploy the latest technology into optimized Linux based products. This presentation covers the basic work from Linaro Android platform team.
Presentation at FreedomHEC 2012 Conference. 0xlab extends DMTCP (Distributed Multi-Threaded CheckPointing) to enable Android checkpointing, which leads to resume to stored state for faster Android boot time and make better product field trial experience.
Presentation at Android Builders Summit 2012.
Based on the experience of working with ODM companies and SoC vendors, this session would discuss how to figure out the performance hotspot of certain Android devices and then improve in various areas including graphics and boot time. This session consists of the detailed components which seem to be independent from each other in traditional view. However, the situation changes a lot in Android system view since everything is coupled in a mass. Three frequently mentioned items in Android engineering are selected as the entry points: 2D/3D graphics, runtime, and boot time. Audience: Developers who work on Android system integration and platform enablement.
Linaro's mission is to make it easier and quicker for ARM partners to deploy the latest technology into optimized Linux based products. This presentation covers the basic work from Linaro Android platform team.
Presentation at FreedomHEC 2012 Conference. 0xlab extends DMTCP (Distributed Multi-Threaded CheckPointing) to enable Android checkpointing, which leads to resume to stored state for faster Android boot time and make better product field trial experience.
How to implement a simple dalvik virtual machineChun-Yu Wang
This slide is an introduction to Android Dalvik Virtual Machine on a short course.
We use two hand-made JVM and DVM which called Simple JVM and Simple DVM respectively, to tell student how they work. A Foo Class was provided as a target for verifying the execution results of those VM. We hope it will help student to understand JVM and DVM quickly.
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices. Let’s geek out!
In this presentation, the unaware or indirect applications of essential computer science concepts are dicussed as showcase. Jim Huang presented in Department of Computer Science and Engineering, National Taiwan University.
Demian Neidetcher's presentation to the Denver Open Source Users Group on the Android mobile phone platform. Full details and source code available at http://neidetcher.com/android.html
Inside Android's Dalvik VM - NEJUG Nov 2011Doug Hawkins
In this presentation, Doug Hawkins will discuss how the Dalvik VM is different from traditional Java VMs and the motivations behind those differences. Along the way, you'll learn about Android's service architecture, Dalvik's byte code format, and the surprising details of how Android installs, launches, and executes applications.
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
SurfaceFlinger is a vital system service in Android system, responsible for the composting all the application and system layer and displaying them. In this slide,we looked in detail how surfaceFlinger was designed from Design Pattern's perspective.
Mechanisms and tools of development and monitoring in Linux Kernel
A brief presentation about the tools and mechanisms about development for the Linux Kernel to help understanding of what is required.
Tools that create an execution profile or provide instrumentation through static or dynamic methods, the Linux Kernel code, will be presented.
Also discussed will be the GDB debugger and how through a remote virtual serial connection to a virtual machine it can be used to debug a live Kernel and Linux Kernel modules. Also demonstrated will be how a deeper understanding of the code can be attained by attaching the memory locations used by the Kernel module to the GDB session.
Lastly, some of the Kernel execution contexts, such as, interrupts, deferrable work, context, etc. are presented.
How to implement a simple dalvik virtual machineChun-Yu Wang
This slide is an introduction to Android Dalvik Virtual Machine on a short course.
We use two hand-made JVM and DVM which called Simple JVM and Simple DVM respectively, to tell student how they work. A Foo Class was provided as a target for verifying the execution results of those VM. We hope it will help student to understand JVM and DVM quickly.
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices. Let’s geek out!
In this presentation, the unaware or indirect applications of essential computer science concepts are dicussed as showcase. Jim Huang presented in Department of Computer Science and Engineering, National Taiwan University.
Demian Neidetcher's presentation to the Denver Open Source Users Group on the Android mobile phone platform. Full details and source code available at http://neidetcher.com/android.html
Inside Android's Dalvik VM - NEJUG Nov 2011Doug Hawkins
In this presentation, Doug Hawkins will discuss how the Dalvik VM is different from traditional Java VMs and the motivations behind those differences. Along the way, you'll learn about Android's service architecture, Dalvik's byte code format, and the surprising details of how Android installs, launches, and executes applications.
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
SurfaceFlinger is a vital system service in Android system, responsible for the composting all the application and system layer and displaying them. In this slide,we looked in detail how surfaceFlinger was designed from Design Pattern's perspective.
Mechanisms and tools of development and monitoring in Linux Kernel
A brief presentation about the tools and mechanisms about development for the Linux Kernel to help understanding of what is required.
Tools that create an execution profile or provide instrumentation through static or dynamic methods, the Linux Kernel code, will be presented.
Also discussed will be the GDB debugger and how through a remote virtual serial connection to a virtual machine it can be used to debug a live Kernel and Linux Kernel modules. Also demonstrated will be how a deeper understanding of the code can be attained by attaching the memory locations used by the Kernel module to the GDB session.
Lastly, some of the Kernel execution contexts, such as, interrupts, deferrable work, context, etc. are presented.
.NET Conf 2019 Tel-Aviv Israel
There are cases where bugs are discovered only after the product is shipped and used by the end-users. The main reason for these bugs that appear only in the production environment is the use of real user scenarios with real user data. Production debugging is about solving customer-facing issues that aren't easily reproducible in the development or testing environments. When it comes to a cloud-hosted application, production debugging becomes even harder. The code is running on multiple hosts, a business flow can span many services. A remote debugging session with the cloud is dangerous and may introduce side effects to the currently running software, such as performance degradation, interruption of service, and data correctness issues.
In this lecture, we will see how we can remote debug our cloud staging environment, and how we can use Visual Studio Snapshot debugger to set Snapshots and Log points in our production environment.
To get even more insights, the audience will see a revolutionary tool and approach for a collaborative production debugging – OzCode Debugging as a Service (DaaS), where the DevOps and the Dev team can solve production problems together!
You will learn:
1. The difficulties of debugging a modern cloud-hosted application
2. Methods and tools for capturing the state and debugging cloud-hosted services
While the Language Server Protocol (LSP) has quickly become an industry standard in the devtools domain and Eclipse IDE promptly got support for it with the Eclipse LSP4J and LSP4E projects, LSP is only targetting the code edition activity. However, code edition is just one activity amongst others for a developer, and some would argue that it's not the main use-case that justifies usage of an IDE over a simple text editor.
One of the most important activity (where IDEs are usually better than other tools) for a developer is debugging: watching a program run, digging hints of what could be wrong, experimenting things against the running application... Similarly to the Language Server Protocol, as part of Visual Studio Code, a JSON-based language and tool agnostic protocol was created to support typical debug interactions and facilitate the binding of a devtool with a debugger. Eclipse LSP4J and LSP4E enabled in early 2018 support for this Debug Adapter Protocol in Eclipse IDE.
Eclipse aCute, providing an IDE for C# and .NET Core, managed to use this Debug Adapter Protocol and the existing integrations with Eclipse IDE to relatively easily and quickly integrate support for netcoredbg, an open-source debugger for .NET Core.
In this presentation, we'll explain how the Debug Adapter Protocol works, how LSP4J can be used to support it in any Java application (either a debugger or a client), how LSP4E can be used to support it out-of-the-box in Eclipse IDE, and we'll use aCute example to show how plugin providers can extend LSP4E and provide the final steps of a good and simple UX.
Presented by Brian Gupta (brian.gupta@brandorr.com) and Nathan Freitas (nathan@olivercoady.com)
Learn more at http://tinyurl.com/androidfaq
Android is a fully integrated and open source bundle of software significantly lowers the current costs of developing mobile devices (currently runs on a cellphone (the HTC Dream/T-Mobile G1), and a number of unofficial "ports". It consists of an operating system, middleware, a user-friendly interface and powerful applications.
The talk will start with a review of the internal architecture of the Android platform, breaking down the various components, and examine how they work. Then we will review the latest status of the open source project, including how to get and build the source code, and how to get involved.
เครื่องคอมพิวเตอร์เป็นอุปกรณ์ทางอิเล็กทรอนิกส์ สิ่งที่คอมพิวเตอร์เข้าใจคือสัญญาณทางไฟฟ้า แต่ในการเขียนโปรแกรมเพื่อให้คอมพิวเตอร์ทำงานนั้นมีภาษาให้เลือกใช้หลายภาษา นักเรียนจะต้องเข้าใจว่าเหตุใดคอมพิวเตอร์จึงสามารถประมวลผลภาษาโปรแกรมได้ และโปรแกรมที่ได้ถูกสร้างขึ้นก็มีหลายประเภทขึ้นอยู่กับการประยุกต์มาใช้งานกับเครื่องคอมพิวเตอร์ สำหรับโปรแกรมที่นำมาใช้ในการเรียนนี้คือ โปรแกรม DEV C++ ซึ่งนักเรียนจะต้องเข้าใจขั้นตอนในการพัฒนาโปรแกรมด้วยภาษาซีให้สามารถประมวลผลตามต้องการได้
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Knowledge engineering: from people to machines and back
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
1. So you want me to use which debugger ... ?
Deciphering the CDT debugger alphabet soup
Bruce Griffith John Cortell
Partner Senior Software Engineer
Sage Electronic Engineering, LLC Freescale Semiconductor
Bruce.Griffith@se-eng.com
2. What does a debugger need to do?
1. Launch new programs
2. Control program execution (run/stop/breakpoint)
3. Read/write hardware registers and memory
4. Interpret stack frames
5. Disassemble machine instructions
6. Perform symbol lookup and translate memory and registers into
program variable values
Additional things a debugger might do:
1. Track remote system status (e.g. process status, CPU utilization)
2. Perform symbol lookup on the remote system (for system calls)
3. Non-stop debug
4. Execution tracing
5. Read/write target flash
6. Edit-and-Continue / code hot-swap
3. Paradigms: Develop-on-Target
Debugger
Application
Application Application
Eclipse IDE with CDT
Desktop Operating System
Hardware Resources
Host / Target Machine
4. Paradigms: kernel debug
JTAG
Applications
Debugger
Debug
Probe
Eclipse IDE
with CDT
Driver Driver Driver
Comm
Comm Operating System
(559) 272-0900
Debug
“stub” Initial Program Loader (IPL)
Desktop Operating System
Debug
Hardware Resources Logic Hardware Resources
(Hardware)
Host Machine Target Machine
5. Paradigms: Remote Application Debug
Application
Debugger
Application
Eclipse IDE
with CDT
Comm Debug “stub”
Comm
Network
Desktop Operating System RTOS
Hardware Resources
Host Machine Target Machine
9. Summary
CDI-GDB DSF-GDB DSF-EDC-TCF TCF-debug
Debug Model Standard Flexible Hierarchy Flexible Hierarchy Flexible Hierarchy
Status of Reference
Not Active Mature Active Development Incubation
Implementation
Multi-core / Multi-process
None Under Development Designed In
Extensions
EDC
Debugger Backend gdb gdb TCF Agent(s)
TCF Agent(s)
Communications Handler gdb gdb TCF TCF
Java Java Java (TCF) Java (TCF)
Source Language
(+GNU components) (+GNU components) C (TCF Agents) C (TCF Agents)
Anything gdb Anything gdb gdbserver, x86,
Existing Target Support Windows, LINUX
supports supports ARM
Symbol Support DWARF DWARF DWARF DWARF, PDB
11. Some Definitions ...
host: debugger: (the definition for this talk)
The system used to compile, A piece of software that abstracts
assemble, and link a program. The access to the resources used by a
user interface to control symbolic target program and controls target
debug often runs on a host. program flow.
target or debuggee: In more concrete terms:
The system where the compiled • provides access to registers and
program will run. For desktop memory used by the debuggee
application programs, the host and • manipulates hardware and
target are usually the same software breakpoints and allow
system. For embedded systems, user to start/stop debuggee
the host and target are frequently • Performs symbol lookup for
different physical machines. symbolic names
• Perform instruction
disassembly
12. Definitions (cont.)
gdb: CDI: (C/C++ Debugger Interface)
A command-line debugger Serializes communications between
developed by the GNU Project. gdb Eclipse debug windows and
supports several target architectures gdb. Uses a fixed information
(e.g. ARM variants, PowerPC, x86, hierarchy.
etc.).
DSF: (Device Services Framework)
gdbserver (or stub): Synchronizes communications
A piece of gdb that runs on the target between Eclipse debug windows and
to interact with the target hardware gdb. Uses flexible hierarchy.
and OS. Allows gdb to debug a
remote target. TCF: (Target Communication Framework)
Abstracts communications, can be
EDC: (Eclipse Debugger for C/C++) used to make multiple virtual
Part of the Eclipse CDT project. A connections between host and target
lightweight debugger that exploits (e.g. proprietary debugger
DSF for message synchronization connection plus virtualized Ethernet
and uses TCF for target plus virtualized monitor).
communication.
13. CDI: C Debugger Interface
(CDI-GDB is the default C debugger implementation for CDT through Galileo)
"The CDI is a Java™-based • New development has ceased, but
Application Programming Interface reference implementations are mature
(API) whose classes and interfaces and production-ready.
make it possible to access the CDT's • Serializes debugger access to ensure
debugging framework. An Eclipse that responses remain associated with
plug-in that uses the CDI can add new the proper debugger commands.
debuggers to the CDT's operation and • Uses a fixed hierarchy:
display the debugging results in the ILauch =>
IDebugTarget =>
Eclipse/CDT debug perspective." IProcess =>
IThread =>
• CDI provides a standard programming IStackFrame
interface for Eclipse CDT views to • Events cause all debug views to
access a custom debugger. CDI-GDB update
provides a reference implementation
using gdb.
14. DSF: Debugger Services Framework
"Debugger Services Framework (DSF) • Currently the default debugger
is an API for integrating a debugger framework for CDT. The existing
with Eclipse's standard debugger reference implementation for gdb is
views. It is an alternative to Platform's mature and production-ready.
standard debug model and it • Uses a concurrency model to ensure
leverages debugger views' flexible that responses remain associated with
hierarchy API which was introduced in the proper debugger commands
Eclipse 3.2. The main design goal of without serializing requests.
DSF is to allow increased flexibility • Uses a flexible hierarchy for views
and performance in a debugger related to stack frames, threads,
integration." processes, etc.
• DSF-GDB will permit exploitation of
• DSF provides a standard new gdb features such as multi-core /
programming interface for Eclipse multi-process and OpenCL support.
CDT views to access a custom
debugger. DSF-GDB provides a
reference implementation using gdb.
15. TCF: Target Communications Framework
"TCF is a vendor-neutral, lightweight, • Aggregates and virtualizes host-to-
extensible network protocol mainly for target communications into a single
communicating with embedded physical or virtual connection.
systems (targets). Its most • Provides for agent discovery
distinguishing feature is that TCF is • Agents can perform any arbitrary
designed to transparently plug in service.
value-adding servers between the tool • Eliminates the need to dedicate
and the target. But even without value- multiple communications links for
add, the protocol has the potential to target debug, and can "piggyback"
unify lots of currently independent debug communications onto an
communication links, thus saving existing target link.
resources and making setup and
configuration much easier than in
current embedded development
scenarios."
16.
17. gdb: The GNU Debugger
"GDB is a source-level debugger for • Variants for ARM, x86, x86_64,
Ada, C, C++, Objective-C, Pascal and PowerPC, MIPS and several other
many other languages. GDB can processor architectures
target (i.e., debug programs running • Executes on LINUX, UNIX, and
on) more than a dozen different Windows hosts. (Windows
processor architectures, and GDB supported via Cygwin or MinGW)
itself can run on most popular • Debugs applications built for
GNU/Linux, Unix and Microsoft UNIX, LINUX, and Windows
Windows variants." • Supports ELF and PE file format
• Licensed under GPL • Supports DWARF symbols
• Supports C, C++, assembly • Does NOT support Windows PDB
language, FORTRAN, and several symbols
other languages • Emerging multi-process support
• Actively maintained under the Free • Emerging support for numeric
Software Foundation umbrella processing (NVIDIA and ATI
• Can be used to debug local and hardware and OpenCL)
remote applications
18. EDC: The Eclipse Debugger for C/C++
"EDC is a Complete Architecture for • Variants for ARM and x86
C/C++ Debugging in Eclipse/CDT that • Written in Java with agents written
leverages and connects existing in C.
Eclipse debug technology (Platform, • Debugs applications built for
CDT, DSF, TCF). EDC doesn’t require LINUX, Symbian, and Windows
a debug “back-end”. Completely • Supports ELF and PE file format
asynchronous for best performance. • Supports DWARF symbols
Pervasive multi core/context/process • Multi-process support
support. Provides a collection of core • Stack deframing based on
debug services. Uses platform specific dynamic processor modes is
low level debug agents. Reference possible (for example X86 real
implementations for Windows and mode to protected mode)
Linux." • Provides additional high-level
• Licensed under EPL features such as snapshots and
• Supports C and C++ scripting
19.
20. TCF-debug
"This code connects Eclipse Debug • TCF-debug is a debugger
Framework and Target reference implementation that
Communication Framework. It allows demonstrates using TCF agent(s)
to launch Eclipse debug session by as a full-featured debugger.
connecting to a target running TCF • Debugger services are
agent, and then perform basic discovered from within the local
debugging tasks, like resuming, network.
suspending, single-stepping, • Existing stubs are written in C and
setting/removing breakpoints, etc. The available for Windows and LINUX.
code can be used as a reference for The Windows stub can be used
developing new TCF clients." with Microsoft toolchains and
understands Microsoft symbols.
• Existing stubs are focused on
remote application debug and can
integrate with Remote System
Explorer (RSE).
• TCF-debug is in "incubation"