Skip to main content
  • 产品
  • Software evaluation
  • 下载
  • Free utilities
  • 购买
  • 芯片厂商
  • 支持
  • 关于我们
  • Search
  • 工作机会
  • 新闻简报
  • 联系我们
  • Ozone - debugger and performance analyzer
  • Essential debug features

    Ozone — standard debug features

    Ozone is a full-fledged multi-platform debugger and performance analyzer with features that go well beyond those of a typical debugger.

    SEGGER Ozone
    1. 1.Standard debug features
    2. 2.Source Code Viewer
      1. 2.1.Selective interleaving of source and disassembly
    3. 3.Disassembly window
    4. 4.Window synchronization
    5. 5.Change-level highlighting
    6. 6.Observation of variable values
    7. 7.Registers window
    8. 8.Memory window
    9. 9.Project information — functions and source files

    Standard debug features

    As a full-featured debugger, Ozone includes all common debug features, that developers need and are familiar with. Features include code views, symbol and data windows, register and memory displays. Ozone goes beyond typical debug use cases to enable efficient and extensive debugging within a fully integrated UI.


    Source Code Viewer

    The Source Code Viewer is the core of Ozone's graphical user interface. It enables navigation through the firmware's source code with syntax highlighting for C/C++, Assembly and Rust. Jump to symbol declaration or into function definition provides an overview into the project's structure. The Source Code Viewer's header bar and Ozone's capabilities to find functions, global data, and source files further expand on this capability.

    While debugging, users can quickly evaluate symbol values and expressions with mouse-over tool tips and Quick Watch. For longer observation symbols can be dragged and dropped directly from the source code into the Watched Data window or into the Data Sampling window.

    The image displays a portion of C programming code for initializing a Basic Software Platform (BSP). It includes function definitions, variable declarations, and memory instructions, focusing on setting up LED control registers and their configuration parameters.

    Selective interleaving of source and disassembly

    The Source Code Viewer's most valuable feature for embedded firmware development is its inline disassembly view.

    Users can expand every code line to reveal the instructions the compiler generated for this line. In contrast to traditional disassembly views, the inline disassembly immediately identifies all associated instructions, even when they are placed in non-contiguous blocks. With inline disassembly users can check and verify the compiler's code generation.

    Moreover, users can selectively step through complex expressions at the instruction level to trace the exact behavior in critical situations.


    A screenshot of assembly code displayed on a tablet screen. The code shows a function labeled "BSP_Init" with various assembly instructions, including loading and storing values, and operations on specific registers. Key lines are highlighted in color for emphasis.

    Disassembly window

    The Disassembly window displays the firmware's computer code at its lowest level. It analyzes the firmware binary and target memory to show what the target hardware is going to execute. It displays each instruction, along with its address, machine code, and assembly code. The assembly code is enriched by commonly used, matching pseudo instructions; dereferenced offsets and their value; referenced symbol values and jump targets.

    The Disassembly window can display associated source code for instruction blocks inline, as well as labels, in order to identify functions and (read only) data blocks.

    Ozone synchronizes the Disassembly window and the Source Code Viewer to automatically display the code currently being executed on source and instruction level. Users can jump from disassembly to corresponding source code and vice versa. Even when no source code is available, the Disassembly window provides information important for comprehending the firmware's code.

    Some devices have custom extensions to the instruction set. This is fairly common with RISC-V-based target devices. Ozone's disassembly view can be extended to display custom instructions. More information


    Window synchronization


    Ozone always puts the debug state into perspective, and it provides a complete overview across all its windows through synchronized views. On halt the Source Code Viewer and Disassembly window show the location of the currently executed code, in line with current symbol values and register contents in their respective windows.

    When a user navigates through the call stack or the task list, these views are updated and provide full insight into what happened before or in parallel. The action of stepping back in time through the instruction trace is synchronized with the source code and timeline for easy high-level debugging of the past.

    Change-level highlighting


    Ozone assists users in quickly identifying changes in system's state throughout a debug session. Each time a symbol, register contents, or data in memory changes, the corresponding value is highlighted.

     In addition, Ozone features change-level highlighting. With every update cycle, highlighted unchanged values gradually change to indicate when the most recent change occurred. As a result, users can easily recognize how target states evolve from cycle to cycle – specifically in combination with periodic refresh or looped break-and-continue cycles.


    Observation of variable values

    Along with insights into code, Ozone presents valuable information about variable values and a system's state.

    Data symbols can be analyzed in three windows, that offer easy access to relevant information and high flexibility. The Global Data window includes all global and static symbols, that provides a full overview of data used by the system. The Local Data window adds local symbols, that are present in the currently active function or code block. The Watched Data windows provide full flexibility to selectively view global data symbols, single members of a struct or array, and expressions.

    All Data windows display information about symbol values in different formats, their location in memory or registers, data size, and type and access information.

    All values are updated when the target state changes. In addition the Watched Data windows feature a periodic refresh function that lets users monitor changing data while the target system is running.

    The image displays a technical interface with data fields related to memory locations and structures. It includes various parameters such as names, values, locations, sizes, and types associated with global and local data. The context suggests a focus on file handling and cryptographic elements.

    Text displays a list of CPU registers, including their names, values, addresses, and descriptions. Each register is categorized, such as general-purpose registers and special function registers, with corresponding hexadecimal values and functions specified. The structure appears similar to a table or spreadsheet format.

    Registers window

    The Registers window enables closer analysis of the state and behavior of a CPU and its peripherals. Ozone displays CPU registers, including control and status registers and their fields, as well as co-processor registers. Additionally, Ozone can display memory-mapped peripheral registers (SFRs). The registers are organized in groups, that can be selectively added and expanded. For full flexibility Ozone features multiple instances of Register windows, that further help to organize register groups and keep important information in view.

     


    Memory window

    The Memory window provides a view into the target system's Flash and RAM. It displays memory contents in a hex editor, which allows memory to be read and modified. In addition, the ASCII representation helps with easy identification of strings and patterns. All data symbols can be revealed and highlighted in the Memory window to aid analysis of complex structs and arrays, as well as symbol surroundings.

    Finally, users can save data from the memory window into a binary image file or load binary image files, that are directly downloaded into the target system's memory.

    The image displays a computer memory editor interface, showing hexadecimal values and raw data in a grid format. It includes text related to disk operations and file management, indicating processes like writing and formatting. The interface presents technical information in a structured layout.

    A detailed list of functions and source files related to a file system, including their addresses, sizes, and status. The document is organized into sections showing the total number of files, compiled size, and relevant paths for each file within the project.

    Project information — functions and source files

    Ozone can display lists of all functions and source files stored within firmware debug information. With the Functions window, these items are viewable in memory as disassembly code, or directly in a source file. The list includes information about addresses, sizes, and numbers of instances. The Source Files window provides information about status (included or compiled) and the location on the file system at build time. Compiled files are also listed with information on size and numbers of instances.

     

    全球总部

    德国: SEGGER Microcontroller GmbH

    地址: Ecolab-Allee 5
    40789 Monheim am Rhein, Germany
    电邮: info@segger.com
    电话: +49-2173-99312-0
    传真: +49-2173-99312-28

    网点分布

    中国:哲戈微系统科技(上海)有限公司

    地址: 中国上海市闵行区秀涟路133号
    大虹桥国际A 栋218室
    邮编201199
    电邮: china@segger.com
    电话: +86-133-619-907-60


    简易信息聚合

    通过ISO 9001认证

    ISO 9001

    30多年的嵌入式行业经验

    First-class embedded software tools since 1992
    • 版本说明
    • 免责声明
    • 行为准则
    • 隐私策略
    • 沪ICP备2022005181号
    • 沪公网安备 31011202014525号
    © 2025 SEGGER - 版权所有.

    您即将离开 segger.cn 而访问境外网站,是否继续?