Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
10 embedded world – the official daily 2023 Dienstag 14 3 2023 Messe-News Avoid software bugs Detecting C C++ memory errors in realtime code One of the main sources of problems are memory access errors triggered by different kind of bugs like buffer overflows and memory leaks The results can be devastating By means of a new technology the debugger supplier Lauterbach wants to support developers to avoid such errors in the future By Stephan Lauterbach In 1996 the European Space Agency ESA rocket Ariane 5 blew up just 39 seconds into flight because of a software bug which resulted in a loss of more than 370 Mio US-Dollar But not only in such extreme examples but also in everyday life such bugs can be a major source of danger if you think of autonomous driving for example According to the Common Weakness Enumeration CWE typical memory access errors like outofbound write or read accesses or useafterfree lead the top 25 list of most dangerous software weaknesses and are therefore most important to be found Lauterbach has developed a new technology which allows to automatically identify such software bugs in realtime embedded software using microprocessor trace technology It’s called “Advanced Dynamic Code Analysis” ADCA Premiere at the embedded world Conference ADCA will be presented for the first time at the embedded world Conference on March 15 at 11 30 a m where company founder and CTO Stephan Lauterbach will give a corresponding talk Wellknown and longstanding dynamic code analysis tools such as Valgrind and Asan AddressSanitizer instrument the code to detect memoryspecific errors The problem is that this slows down code execution by a factor of 2 to 20 and blows up the code size making these tools unsuitable for realtime applications Lauterbach‘s approach is quite different As can be seen in Figure 1 ADCA is based on ordinary realtime flow trace and Lauterbach‘s unique Context Tracking System CTS By using flow trace information of the address bus and data bus is transferred as it occurs directly at the CPU core By recording all trace data unfiltered it is very likely that the error being searched for can Presentations on Advanced Dynamic Code Analysis ADCA Stephan Lauterbach founder and CTO of Lauterbach will give two presentations Date Time Session Title Location Wednesday 15 March 11 30 –12 00 6 5 Dynamic Static Code Analysis Advanced Dynamic Code Analysis for Real-Time Embedded Systems Messezentrum NCC Ost Thursday 16 March 10 00 –12 00 ADCA live demo and discussion Hall 4 Booth 210 Exploring and fixing memory access errors Lauterbach’s Context Tracking System CTS allows to recreate the state of a target system based on the information sampled in the trace buffer CTS allows to redebug a traced program section forward and backward debugging highlevel language trace display including all local variables and has the ability to fill trace gaps caused by limited bandwidth of a trace port Finally ADCA is an advanced CTS mode for exploring and fixing memory access errors It runs after startup code and captures initial memory and register states Static and dynamic tags are assigned to all data and memory addresses Tags are invisible meta information which are pulled along by the debugger Memory violations are detected according to the keylock principle Adatum with a certain tag may only access a memory address that is associated with the same tag Figure 2 Figure 3 shows an example of an array access out of bounds ADCA reports a failure when accessing an array and the memory address of the access violation Developers can use this information to analyze the code and to fix the bug s by using additional information displayed in Lauterbach’s TRACE32 PowerView GUI Only Lauterbach’s Advanced Dynamic Code Analysis fulfills the needs of embedded developers regarding realtime requirements and detection of the most relevant potential memory access errors occurring in C C++ ADCA is a major step forward to identify these hard to find and reproduce bugs supporting even multicore architectures For selected architectures the technology will be available in TRACE32 PowerView software update in one of the next releases with no extra cost for Lauterbach customers hs Lauterbach Hall 4 Booth 210 Im ag e ES A Im ag e La ut er ba ch Im ag e La ut er ba ch Im ag e La ut er ba ch Figure 3 Advanced Dynamic Code Analysis ADCA report for an array access out of bounds Figure 2 Adatum with a certain tag may only access a memory address that is associated with the same tag Figure 1 The Lauterbach trace pyramid for realtime embedded systems be found in the recording given the appropriate recording times In addition several program runs are available for runtime statistics and or code coverage analysis Real time flow trace itself is not rocket science however Lauterbach‘s trace tools provide the highest data rates and greatest features in the industry