Skip to main content
Arm Keil ULINKpro and ULINKpro D debug and trace adapters, official Arm product image, illustrating trace-based code coverage evidence for ISO 26262 and DO-178C by GSAS Micro Systems India

Trace-Based Code Coverage as ISO 26262 and DO-178C Evidence

GSAS Engineering · · 11 min read

Trace-based coverage records which instructions executed and which branches were taken while tests run on the real target, using the processor's trace hardware rather than code added to the build. That gives object code coverage of the binary under test. It is strong evidence that tests exercised the shipped code, but mapping it to source-level metrics such as MC/DC needs analysis of how the compiler translated each decision, and the coverage tool needs the same confidence or qualification argument as any verification tool.

Structural coverage is the part of a safety verification plan that most often turns into a schedule problem. The tests exist, they pass, and then someone asks the question an auditor will ask: how do you know these tests exercised the code that ships?

Hardware trace answers that question in a particular way. It records what the processor executed while the tests ran, on the target, without adding anything to the build. This article explains what that measurement is, how it relates to the coverage metrics ISO 26262 and DO-178C discuss, where it fits next to instrumented unit test coverage, and what a reviewer will challenge. Both standards are paywalled, so this article quotes no clause numbers from them. It relies on public secondary sources and on our own ISO 26262 and DO-178C compliance pages.

If you want the SEGGER-specific version of this story, read J-Trace PRO for ISO 26262 and DO-178C trace evidence. This article is the vendor-neutral method.

Two ways to measure coverage

Instrumented coverage inserts counters or markers into the code at build time. The instrumented build runs the tests and reports which points were reached. It is precise at the source level and works on almost any target, but the binary under test is not the binary you ship, and the added code costs memory and execution time.

Trace-based coverage uses the processor’s trace hardware. On Arm cores the ETM emits a compressed program flow stream; a probe captures it and a debugger reconstructs which instructions executed and which branches went which way. Nothing is added to the build. Arm’s Keil documentation for ULINKpro describes this: streaming instruction trace provides complete code coverage information, and requires the target device to have an ETM. SEGGER says J-Trace captures every executed instruction non-intrusively in real time, and lists code coverage among the analysis features of its Ozone debugger.

The two are not competitors. They answer slightly different questions.

Instrumented coverageTrace-based coverage
Binary under testInstrumented buildThe build under test, unmodified
Level measuredSource constructsObject code, mapped to source
Target requirementsMemory and time for instrumentationTrace hardware and a route for trace off the chip
StrengthSource-level metrics such as MC/DC, unit levelShows what the real binary executed, integration and system level
Typical toolUnit test tools such as Razorcat TESSYTrace probes with a coverage-capable debugger

Object code coverage and the source-level metrics

The coverage metrics teams talk about, statement, branch or decision, and MC/DC, are usually defined over source code. Trace measures object code. The bridge between them is where a reviewer will focus.

DO-178C. As our DO-178C compliance page summarises, DO-178C permits structural coverage analysis at source code, object code or executable object code level, with the applicant choosing the most appropriate level, and at Level A it requires additional verification of code the compiler generates that cannot be traced to source. EASA’s Certification Memorandum CM-SWCEH-002, written against ED-12B/DO-178B, has a section on using object code coverage for equivalence to MC/DC. It describes object code coverage as attempting to achieve structural coverage on the object code, the assembly language code, instead of the source code, and states that the section combines an earlier EASA memorandum with the CAST-17 position paper on structural coverage of object code. If you intend to claim MC/DC equivalence from object code coverage, read that section and agree the approach with your certification authority before you build the evidence.

ISO 26262. As our ISO 26262 compliance page explains, the unit-level structural coverage metrics are statement coverage, branch coverage and MC/DC, rated as recommendations rather than mandates, with MC/DC carrying the strongest recommendation at ASIL D and a rationale required for the combination chosen. At the architectural level the metrics are different: function coverage and call coverage. Trace is a natural fit for those, because it records every function entry and call on the real target during integration testing.

MC/DC specifically. MC/DC requires showing that each condition in a decision independently affects the outcome. The NASA practical tutorial on MC/DC (NASA/TM-2001-210876) is a widely cited public reference. Trace records branch outcomes in object code, and whether those outcomes demonstrate MC/DC for a source decision depends on how the compiler translated the decision. That varies with compiler and optimisation level, so it is an analysis, not an automatic result. Our MC/DC coverage guide covers measuring MC/DC at the unit level.

A coverage strategy that holds up

Most safety programmes end up combining the two methods:

  1. Unit level: requirements-based unit tests with instrumented coverage, including MC/DC where the integrity level calls for it.
  2. Integration and system level: requirements-based tests on the target, with trace-based coverage of the binary under test, giving function and call coverage and object code statement and branch coverage.
  3. Reconciliation: explain every region neither method covered. Uncovered code is either a missing test, a missing requirement, or code that should not be there.

The article Is 100% code coverage enough? explains what each metric does and does not prove, which is the argument you will make in step 3.

What a reviewer will ask about trace-based coverage

  • Which binary was measured? Record the build identity of the binary that ran and show it is the configuration under test.
  • Was trace complete? Trace can overflow when the core generates more data than the trace route carries. Show that the capture had no gaps, or that gaps were detected and the affected runs repeated. The off-chip trace explainer covers overflow.
  • How does object code map to source? Explain how the debugger maps instructions back to source, and how compiler-generated code with no direct source counterpart is handled.
  • What confidence do you have in the tool? Under ISO 26262 the coverage tool needs a tool confidence argument; under DO-178C you assess whether DO-330 tool qualification applies. Check what qualification material your tool vendor provides. Our DO-178C page notes that SEGGER makes no DO-178C or DO-330 qualification claim for J-Trace or Ozone: they are instruments for observing on-target execution, and the qualification argument is yours.

Tools GSAS supplies today

For on-target coverage on multicore AURIX/TriCore and RH850 ECUs, talk to our FAE team about the right probe for your device and trace interface.

Where GSAS fits

GSAS Micro Systems supplies trace probes, debuggers and unit test tools in India with INR quotations and local application engineering. Our engineers in Bengaluru, Pune, Chennai and Hyderabad help automotive and aerospace verification teams design a coverage strategy that combines unit-level and on-target evidence, and support teams in Mumbai and Delhi NCR on site and remotely.

References

Building for Automotive & Mobility?

Talk to our application engineers for personalized tool recommendations.

Frequently asked questions

What does trace-based code coverage actually measure?
It measures which machine instructions executed and, for conditional branches, which directions were taken, during a test run on the target. That is object code coverage. A debugger maps it back to source lines and functions using the debug information in the ELF file, but the measurement itself is made on the binary that ran.
Is object code coverage accepted for DO-178C?
DO-178C permits structural coverage analysis at source code, object code or executable object code level, with the applicant choosing the most appropriate level, as summarised on our DO-178C compliance page. EASA's Certification Memorandum CM-SWCEH-002, written against ED-12B/DO-178B, has a section on using object code coverage for equivalence to MC/DC, which describes object code coverage as attempting to achieve structural coverage on the object code instead of the source code. Agree the approach with your certification authority early.
Does ISO 26262 require MC/DC?
No. ISO 26262 rates methods as highly recommended, recommended or no recommendation; nothing is rated mandatory. At the unit level the structural coverage metrics are statement coverage, branch coverage and MC/DC, with MC/DC carrying the strongest recommendation at ASIL D, and the project applies an appropriate combination with a rationale. Our ISO 26262 compliance page explains this in detail.
Can trace give MC/DC directly?
Not automatically. Trace records branch outcomes in the object code. Whether those outcomes demonstrate MC/DC for a source-level decision depends on how the compiler translated that decision into branches, which varies with the compiler and its optimisation settings. That mapping is the analysis EASA's memorandum on object code coverage addresses. Many teams measure MC/DC at the unit level with a unit test tool and use trace for object code coverage at integration and system level.
Does the trace tool need to be qualified?
Its output is verification evidence, so plan for it. Under ISO 26262 that means a tool confidence argument, and under DO-178C it means assessing whether DO-330 tool qualification applies. Check what qualification material the tool vendor provides. Our DO-178C page notes that SEGGER makes no DO-178C or DO-330 qualification claim for J-Trace or Ozone.

Stay in the Loop

Get monthly compliance updates, product insights, and engineering best practices delivered to your inbox.

Related Articles

SEGGER J-Trace PRO trace probe, official SEGGER product photo, illustrating timing analysis from hardware trace for AUTOSAR ECUs by GSAS Micro Systems India
Technical Guides Automotive & Mobility SEGGER

Timing Analysis from Trace for AUTOSAR ECUs in India

Interrupt latency, task jitter and execution time budgets are timing questions, and a halted core cannot answer them. This guide shows how Indian AUTOSAR ECU teams use hardware trace to measure timing on real silicon, where measurement stops and static WCET analysis has to take over, and how both map to AUTOSAR timing constraints.

13 Nov 2026 · 11 min read
Timeline diagram of India's CEV Stage V gazette notifications from 2018 to 2026, with the 1 January 2025 applicability date marked, GSAS India
Compliance & Safety Construction & Mining

CEV Stage V Began in India on 1 January 2025

Trade coverage keeps putting CEV Stage V in October 2026. The gazette puts it on 1 January 2025, after one deferral and no band-by-band split. Here is the notification chain, what the October 2026 dates really govern, and what the limits mean on the bench.

2 Sept 2026 · 7 min read
Two test paths leaving the same device under test, one into a conformance suite that returns a passed report and one into a partner node that surfaces a field defect, showing why an ECU can clear a published suite and still fail in a vehicle, from GSAS Micro Systems India
Automotive Ethernet Automotive & Mobility

Automotive Ethernet Conformance: TC8 and Testing Above It

Summarising TC8 as a layer 1 to layer 4 suite is wrong in both directions. The public OPEN Alliance ECU test documents run from transmitter distortion up to a SOME/IP chapter with its own standardised test stub, and they contain exactly one time synchronisation test case. This is what those documents enumerate, chapter by chapter, what genuinely lives above their boundary, why a passing ECU can still fail against a partner node, and how much pre-compliance work a Tier-1 in India can honestly do in-house before a test house visit. Written by the GSAS Micro Systems engineering team in India.

29 Aug 2026 · 12 min read