Debugging complex embedded systems requires efficient and effective tools to analyze and understand the behavior of the system. One crucial aspect of debugging is the ability to inspect local variables, which provides valuable insights into the system’s state. This thesis presents a study, analysis, and implementation of the VSCode AURIX Debugger, a debugging tool for embedded systems, with a primary focus on obtaining and handling local variables in an environment made up of stacktraces, scopes, and threads. The study involves an analysis of the VS Code AURIX Debugger, its architecture, and its characteristics, which provide the necessary means to perform efficient application debugging. The research also identifies general features of debuggers for understanding the concept in a better way. The AURIX microcontroller, specifically the TC375, is used as the target device for this study. The VSCode AURIX Debugger is a powerful tool that provides a range of features for debugging; the debugger uses the Debug Adapter Protocol (DAP) and Debug Adapter (DA) to communicate with the target device. The study also explores the use of the DWARF debugging format, which provides a standardized way of representing debugging information. The implementation of the VSCode AURIX Debugger involves a line of reasoning that takes into account the analysis of debugging information entry (DIE), final addresses, temporal locality, and program counter. The study also involves a recursion process to handle threads, stack traces, scopes, and variables. The results of this study provide the value and the name of local variables, contributing to a better understanding of the system’s behavior and improving the overall debugging experience. This research has implications for the development of more efficient and effective debugging tools for embedded systems. The study also highlights the importance of the DWARF debugging format in providing a standardized way of representing debugging information. Furthermore, this research contributes to the advancement of debugging technology by providing a new feature for inspecting local variables. The study also identifies potential areas for improvement and future work, including the development of more advanced debugging features. For example, future work could focus on showing the stack call of a function or obtaining local variables with other libraries that treat the ELF file in the same way as the DWARF Debugging Information Format. Ultimately, the results confirm the new feature of the debugger to inspect local variables, demonstrating its potential to improve the debugging experience for developers of embedded systems.
Il debuging di sistemi embedded complessi richiede strumenti efficienti ed efficaci per analizzare e comprendere il comportamento del sistema. Un aspetto cruciale del debugging è la capacità di ispezionare le variabili locali, che fornisce informazioni preziose sullo stato del sistema. Questa tesi presenta uno studio, un’analisi e un’implementazione del VSCode AURIX Debugger, uno strumento di debug per sistemi embedded, con un focus primario sull’ottenimento e sulla gestione delle variabili locali in un ambiente composto da stacktraces, scopes e threads. Lo studio coinvolge un’analisi del VS Code AURIX Debugger, della sua architettura e delle sue caratteristiche, che forniscono i mezzi necessari per eseguire un application debugging efficiente. La ricerca identifica anche le caratteristiche generali dei debugger per comprendere meglio il concetto. Il microcontrollore AURIX, specificamente il TC375, è utilizzato come dispositivo di destinazione per questo studio. Il VSCode AURIX Debugger è uno strumento potente che fornisce una gamma di funzionalità per il debugging; il debugger utilizza il protocollo Debug Adapter (DAP) e il Debug Adapter (DA) per comunicare con il dispositivo di destinazione. Lo studio esplora anche l’uso del formato di debug DWARF, che fornisce un modo standardizzato per rappresentare le informazioni di debug. L’implementazione del VSCode AURIX Debugger coinvolge una linea di ragionamento che tiene conto dell’analisi delle informazione di debug (DIE), degli indirizzi finali, della località momentanee e del program counter. Lo studio coinvolge anche un processo di ricorsione per gestire i threads, stacktraces, gli scopes e le variabili. I risultati di questo studio forniscono il valore e il nome delle variabili locali, contribuendo a una migliore comprensione del comportamento del sistema e migliorando l’esperienza di debug complessiva. Questa ricerca ha implicazioni per lo sviluppo di strumenti di debug più efficienti ed efficaci per sistemi embedded. Lo studio sottolinea anche l’importanza del formato di debug DWARF nel fornire un modo standardizzato per rappresentare le informazioni di debug. Inoltre, questa ricerca contribuisce all’avanzamento della tecnologia di debug fornendo una nuova funzionalità per l’ispezione delle variabili locali. Lo studio identifica anche aree potenziali per miglioramenti e lavori futuri, tra cui lo sviluppo di funzionalità di debug più avanzate. Ad esempio, i lavori futuri potrebbero concentrarsi sulla visualizzazione della chiamata di stack di una funzione o sull’ottenimento delle variabili locali con altre librerie che trattano il file ELF nello stesso modo del formato di informazioni di debug DWARF. Infine, i risultati confermano la nuova funzionalità del debugger per ispezionare le variabili locali, dimostrando il suo potenziale per migliorare l’esperienza di debug per gli sviluppatori di sistemi embedded.
Study, analysis and implementation of VSCode AURIX Debugger using Device Access Server (DAS)
COTRONEO, MATTIA
2024/2025
Abstract
Debugging complex embedded systems requires efficient and effective tools to analyze and understand the behavior of the system. One crucial aspect of debugging is the ability to inspect local variables, which provides valuable insights into the system’s state. This thesis presents a study, analysis, and implementation of the VSCode AURIX Debugger, a debugging tool for embedded systems, with a primary focus on obtaining and handling local variables in an environment made up of stacktraces, scopes, and threads. The study involves an analysis of the VS Code AURIX Debugger, its architecture, and its characteristics, which provide the necessary means to perform efficient application debugging. The research also identifies general features of debuggers for understanding the concept in a better way. The AURIX microcontroller, specifically the TC375, is used as the target device for this study. The VSCode AURIX Debugger is a powerful tool that provides a range of features for debugging; the debugger uses the Debug Adapter Protocol (DAP) and Debug Adapter (DA) to communicate with the target device. The study also explores the use of the DWARF debugging format, which provides a standardized way of representing debugging information. The implementation of the VSCode AURIX Debugger involves a line of reasoning that takes into account the analysis of debugging information entry (DIE), final addresses, temporal locality, and program counter. The study also involves a recursion process to handle threads, stack traces, scopes, and variables. The results of this study provide the value and the name of local variables, contributing to a better understanding of the system’s behavior and improving the overall debugging experience. This research has implications for the development of more efficient and effective debugging tools for embedded systems. The study also highlights the importance of the DWARF debugging format in providing a standardized way of representing debugging information. Furthermore, this research contributes to the advancement of debugging technology by providing a new feature for inspecting local variables. The study also identifies potential areas for improvement and future work, including the development of more advanced debugging features. For example, future work could focus on showing the stack call of a function or obtaining local variables with other libraries that treat the ELF file in the same way as the DWARF Debugging Information Format. Ultimately, the results confirm the new feature of the debugger to inspect local variables, demonstrating its potential to improve the debugging experience for developers of embedded systems.File | Dimensione | Formato | |
---|---|---|---|
Cotroneo_Mattia.pdf
Accesso riservato
Dimensione
2.39 MB
Formato
Adobe PDF
|
2.39 MB | Adobe PDF |
The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License
https://hdl.handle.net/20.500.12608/83211