Skip to main content
  • Products
  • Evaluate our Software
  • Downloads
  • Free Utilities
  • Purchase
  • Support
  • About Us
  • Blog
  • Forum
  • Search
    • Contact Us
    • Forum
    • Wiki
    • Web Shop
    • Newsletter
    • RSS
  •   Jobs
  •   Videos
  •   Blog
  •   Sustainability
  • ELFLib
    SEGGER - ELFLib Product Icon

    ELFLib—The ELF Library from the Embedded Experts

    SEGGER’s ELFLib is a library for extracting information from ELF files. It extracts both generic ELF-related information and compiler specific debugging information.

    • No viral licensing (no third-party code)
    • Support for ELF output from different compilers
    • Multi platform (Windows, Linux, macOS)
    • Simple API

     

    1. 1.The SEGGER ELFLib Solution
    2. 2.What is ELF?
    3. 3. Use Cases for the SEGGER ELFLib
    4. 4.Deliverables & Licensing

    The SEGGER ELFLib Solution

    SEGGER’s ELFLib is the preferred solution when creating things like visualization utilities, target control utilities and more. Basically, anything that needs to connect target application information to user interaction and/or data representation can benefit from ELFLib.

    ELFLib lets developers extract debugging information like the addresses of variables from target applications. Normally, DWARF is used to interpret debugging information. However, compilers can be very different. This is the main reason one IDE cannot handle ELF files that were generated by one another. SEGGER’s ELFLib solves this problem.

    What is ELF?

    ELF stands for Executable and Linkable Format. It describes a standard for executable files, object code and similar data points. ELF defines the structure of the file (where to find what information) and is often combined with the DWARF debugging format to specify a way of presenting debugging information, for example: Finding out where a variable is present in memory, what type it is, etc.

    Use Cases for the SEGGER ELFLib

    Many IDEs have various ways to display and interpret data collected by the target application. These data display methods may not fit a particular case's needs. They also bind the development to a certain IDE that may not be available for specific architectures.

    SEGGER’s ELFLib lets developers create their own application that visualizes this data, removing dependency on the IDE used during development.

    Consider the following use cases:

    Use Case #1

    A real world use case of the SEGGER ELFLib is monitoring and modifying variable values of the target application running on an embedded system without the need to implement an extra protocol in the application itself, to get variable data. For example, the SEGGER J-Scope software uses the ELFLib to extract information about what variables are present in a target application. This means the developer can select which ones to visualize.

    Use Case #2

    Another use case of the ELFLib is for example to create a graphical user interface to control the behavior of an embedded target, without implementing a specific protocol etc. for this, by using modifying values of various variables inside the target application This way, the target application itself would not need to be modified (avoiding unnecessary code and saving space in memory) and would be directly usable on any target application.

     

    JScope Main Window

    Deliverables & Licensing

    The SEGGER ELFLib is delivered as a static library (with the option on source code) and available for Windows, Linux and MacOS. The shipment comes with a sample application that demonstrates the usage of the API of the ELFLib.

    The ELFLib is licensed on a company wide license. This means that after the library has purchased once, as many utilities as liked can be created and used inside the company that purchased the ELFLib.

    More Information

    Purchase

    • Pricing

    About us

    • The Company
    • Partners
    • Job Offers
    • Media
    • Contact us

    Support

    • Technical Support
    • Blog
    • Forum
    • Wiki

    Downloads

    • Application Notes
    • Embedded Studio
    • embOS
    • emCompress
    • emCrypt
    • emFile
    • emLib
    • emLoad
    • emModbus
    • emNet
    • emPower
    • emSecure
    • emSSH
    • emSSL
    • emUSB-Device
    • emUSB-Host
    • emVNC
    • emWin
    • Flasher
    • Free Utilities
    • IoT
    • J-Link / J-Trace
    • Linux Studio
    • SystemView
    • CE / REACH

    Social Media

    Headquarters

    SEGGER Microcontroller GmbH

    Ecolab-Allee 5
    40789 Monheim am Rhein, Germany
    info@segger.com
    Tel.: +49-2173-99312-0
    Fax: +49-2173-99312-28

    Locations

    USA: SEGGER Microcontroller Systems LLC

    Boston area
    101 Suffolk Lane
    Gardner, MA 01440, USA
    us-east@segger.com
    Tel.: +1-978-874-0299
    Fax: +1-978-874-0599

    Silicon Valley
    Milpitas, CA 95035, USA
    us-west@segger.com
    Tel.: +1-408-767-4068

    China: SEGGER Microcontroller China Co., Ltd.

    Room 218, Block A, Dahongqiaoguoji
    No. 133 Xiulian Road
    Minhang District, Shanghai 201199, China
    china@segger.com
    Tel.: +86-133-619-907-60

    ISO 9001 certified

    ISO 9001

    30+ years of experience

    First-class embedded software tools since 1992
    • Imprint
    • Disclaimer
    • Privacy Policy

    © 2022 SEGGER - All rights reserved.