MPLAB X Debugging Techniques
|
|
- Nelson Small
- 5 years ago
- Views:
Transcription
1 TLS MPLAB X Debugging Techniques The Debugging Process Author: Rob Ostapiuk, Stu Chandler Microchip Technology
2 Objectives! Describe a generic process for debugging a program! Describe at a high level various techniques that may be employed in the debug process! Implement these techniques in MPLAB X "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." Brian W. Kernighan 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 2
3 Development Tools Data Flow Debug and Test Points Debuggable Code Instrumentation src Source Files Header Files Preprocessor Compiler Macros Compiler Flags Static Checkers Selected Libraries lib Linker Library Files Debug Executive hex Linker Options Code Instrumentation Debugger Programmer MPLAB REAL ICE ACTIVE STATUS FUNCTION RESET TM Memory View, Stack View, Profiling Inputs Input Test Data Outputs 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 3
4 The Four Steps of the Debugging Process BUILD SUCCESSFUL Now what?
5 The Four Steps The Scientific Method of Debugging Testing Stabilization Localization Correction "When the software is 95% complete, there's still 25% to go." Anonymous 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 5
6 The Debugging Process Step 1: Testing Definition Testing is the process of exercising a program by injecting a wide range of input values to uncover limitations of the program and to verify that the program behaves according to its design specifications.! Testing Toolbox! MPLAB X IDE Simulator (MPSIM)! MDB scriptable command line debugger! SCL (Simulator Command Language) Stimulus Scripts! In-Circuit Debugger (PICkit, ICD, Real ICE, etc.)! DMCI (Data Monitor and Control Interface) Plug-in! Try to break the program! Exercise all features with variety of inputs 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 6
7 The Debugging Process Step 2: Stabilization Definition Stabilization is the attempt to control conditions such that a bug may be reproduced on demand, even when using instrumentation (trace/log).! Stabilization Toolbox! Same as testing toolbox, plus! Breakpoints and watches! Instrumented Trace and Log macros! Instrumentation with printf() and similar functions! Determine the specific input values or range of input values that reliably produce incorrect outputs make the bug easily repeatable 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 7
8 Definition The Debugging Process Step 3: Localization Localization is the search for a bug's cause once its result has been identified and made repeatable on demand and is characterized by experimentation and data collection.! Localization Toolbox! Same as stabilization toolbox, plus! Call Stack! Default Interrupts and Traps! Collect and analyze data about bug! Construct a hypothesis describing bug's cause! Test hypothesis to narrow search for bug! Localize bug to a code segment, or variable 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 8
9 The Debugging Process Step 4: Correction Definition Correction is the task of fixing a bug once its source has been located. Often, correction is trivial but may be more complex if the bug is due to faulty program design.! Correction Toolbox! Your programming language knowledge! Good software design practices! Some fixes are trivial and low cost! Logical errors, language misuse, etc.! Some fixes are difficult and expensive! Fundamental program design flaw, misinterpretation or omission of program specifications, etc Microchip Technology Incorporated. All Rights Reserved. Slide 9
10 The Proximity Principle Cause and effect are closer than you think
11 The Proximity Principle and the types of proximity Definition Proximity Principle: The effect of a bug, is by some measure close to its cause, whether it be lexical, temporal, or referential.! Types of Proximity! Lexical The effect of a bug follows a short distance after its cause in the source code (compile time or runtime)! Temporal The effect of a bug follows immediately after its cause during execution of the program (run time)! Referential Two segments of code (perhaps separated by space and/or time) both reference the same item (e.g. variable) without any other references in between (run time) 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 11
12 Lexical Proximity Example void main(int) { foo(); bar(); }! The function calls to foo() and bar() are sequentially executed and are physically near each other in the code! Lexical proximity used for finding compile time errors other types exist only at run time 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 12
13 Temporal Proximity Example while (1) { } foo(); bar();! The first and last lines of the while loop are lexically distant (could have hundreds of lines between them)! The first line executes immediately after the last line at run time as the loop returns to the top 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 13
14 Referential Proximity Example void main(int) { x = foo(); bar(); if (x == 1) {! The references to x on the first and last lines are separated lexically and temporally! Because there are no references to x in between, the first and last lines are referentially close 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 14
15 Error Classification "Any sufficiently advanced bug is indistinguishable from a feature." - Rich Kulawiec
16 Error Classification Ranked by Ease of Automated Testing Methods Syntax and Lexical Logic (Semantic) Runtime (Execution) Latent "Computers are good at following instructions, but not at reading your mind" Donald Knuth 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 16
17 Syntax and Lexical Errors Definition Syntax Errors are the result of legal symbols being combined in illegal ways. Lexical Errors are the result of using symbols that are not legally part of the language.! TEST BASIS: Language Specification! Syntax and Lexical errors, while different are closely related and generally come from:! Misunderstanding how to use the language properly! Typographical Errors! Show up at compile time or at link time! Program will not build with these errors 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 17
18 Example: Syntax Error Syntax and Lexical Errors Examples int x = 5 int y = 6; int z = 0; Missing semicolon illegally combines first two lines into: int x = 5 int y = 6; z = x + y; Example: Lexical Error int x@ = 5; foo y = is not used in ANSI C and is not allowed in identifiers foo is not a data type (unless defined with typedef) 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 18
19 Logic / Semantic Errors Definition Logic Errors are present when a program or function runs to completion, but produces an incorrect result. These are sometimes called Intent Errors.! TEST BASIS: Original Programming Specification! Logic errors may come from:! Design Error (beyond scope of this class)! Implementation Error (didn't follow spec)! Typographical Error (e.g. used & instead of &&)! Can be very painful and costly to fix if at the design or implementation level 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 19
20 Logic / Semantic Errors Examples! It's a simple design, what could possibly go wrong? SW1 ON OFF SW2 ON OFF THINGAMAJIG SW1 SW2 MODE OFF OFF DISABLED OFF ON PASSIVE ON OFF ACTIVE if ((sw1 = OFF) && (sw2 = OFF)) DisableThingamajig(); if (sw1 == ON) EnableThingamajig(ACTIVE); if (sw2 == ON) EnableThingamajig(PASSIVE);! Design error? [~1]! Implementation error(s)? [~1]! Typographical error(s)? [2] 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 20
21 Runtime / Execution Errors Definition Runtime Errors are errors that only become apparent when the program is running. They occur when a programmer asks in a perfectly legal way for something impossible or illogical to be done.! TEST BASIS: High-Level Language and Machine- Level Semantics (Effect of Operations)! Difficult to catch in C due to its lack of runtime range checking - program may run a long time before error is serious enough to be detected! Caused by things like exceeding array bounds! Manifests by things like divide by zero, illegal address, etc. often caught by hardware traps 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 21
22 Example: Runtime Error Runtime / Execution Errors Examples int *p; int x; Pointer is not initialized x = *p; Example: Runtime Error int MyArray[10]; Array bounds will be exceeded by 1 for (int i = 0; i = 10; i++) { MyArray[i] = 0; } 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 22
23 Latent Errors Definition Latent Errors are errors that only become apparent when specific data or inputs are used.! TEST BASIS: All possible input conditions! Extremely difficult to catch in some cases! May not show up for a long time, if ever! Example: inverse = 1/(x y); will cause a divide by zero error when x = y "Testing can only prove the presence of bugs, not their absence. Edsger W. Dijkstra (Turing Award Recipient-1972) 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 23
24 Error Classification Ranked by Ease of Localization Bug Stands Still Bug is Input Dependent Bug is Code Sensitive Bug is Environment Sensitive "To understand a program you must become both the machine and the program Alan Perlis (First Turing Award Recipient- 1966) 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 24
25 Bug Stands Still! Independent of everything around them! Symptoms will be present regardless of:! Program inputs! Startup conditions or path taken in code! Trace or log macros used in debugging! Easy to localize! Syntax / Lexical errors always stand still! Other types may stand still too 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 25
26 Input Dependent Bugs! Symptoms change when input changes! Difficult to localize and identify without the offending input data! Trace can be useful! Simulator or hardware debugger critical to finding error 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 26
27 Code Sensitive Bugs! Symptoms change when code changes! Classic example when program fails in release mode but works in debug mode or when debug statements added (e.g. printf, trace, log, etc.! Sometimes called "Heisenbugs" - The closer you get to them, the harder it is to make them appear 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 27
28 Environment Sensitive Bugs! Symptoms seem to change randomly, but are due to subtle changes in hardware environment! Example: Runs fine immediately after compiled, but fails on subsequent runs (system resets often fix problem)! Possible causes:! Uninitialized variables! Differences in state of peripheral! Mishandled interrupts 2014 Microchip Technology Incorporated. All Rights Reserved. Slide 28
29 Ensure Debugging Info Is Generated (Should be set by default) Project Properties In the compiler settings, ensure that Generate debugging info is checked. This will generate an.elf file (or.coff file) to allow debugging of code in MPLAB X IDE Microchip Technology Incorporated. All Rights Reserved. Slide 29
MPLAB X Debugging Techniques
TLS0102-002 MPLAB X Debugging Techniques Breakpoints Author: Rob Ostapiuk, Stu Chandler Microchip Technology Objectives! Describe the four fundamental types of breakpoints! Describe the differences between
More informationMPLAB X Debugging Techniques
TLS0102-004 MPLAB X Debugging Techniques Exception Conditions Author: Rob Ostapiuk, Stu Chandler Microchip Technology Exception Events Causes and Tools for Resolving Them Exception Events Definition An
More informationCSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 15 Testing Where we are Some very basic software engineering topics in the midst of tools Today: testing (how, why, some terms) Later:
More informationChapter 15 Debugging
Chapter 15 Debugging Known, but unfixed errors Just ignore errors at this point. There is nothing we can do except to try to keep going. -A comment in XFS (xfs_vnodeops.c, line 1785) Error, skip block
More informationProgram Correctness and Efficiency. Chapter 2
Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you
More informationMPLAB SIM. MPLAB IDE Software Simulation Engine Microchip Technology Incorporated MPLAB SIM Software Simulation Engine
MPLAB SIM MPLAB IDE Software Simulation Engine 2004 Microchip Technology Incorporated MPLAB SIM Software Simulation Engine Slide 1 Welcome to this web seminar on MPLAB SIM, the software simulator that
More informationCMPE-013/L. Introduction to C Programming
CMPE-013/L Introduction to C Programming Bryant Wenborg Mairs Spring 2014 What we will cover in 13/L Embedded C on a microcontroller Specific issues with microcontrollers Peripheral usage Reading documentation
More informationLecture 07 Debugging Programs with GDB
Lecture 07 Debugging Programs with GDB In this lecture What is debugging Most Common Type of errors Process of debugging Examples Further readings Exercises What is Debugging Debugging is the process of
More informationUnder the Debug menu, there are two menu items for executing your code: the Start (F5) option and the
CS106B Summer 2013 Handout #07P June 24, 2013 Debugging with Visual Studio This handout has many authors including Eric Roberts, Julie Zelenski, Stacey Doerr, Justin Manis, Justin Santamaria, and Jason
More informationCSCI0330 Intro Computer Systems Doeppner. Lab 02 - Tools Lab. Due: Sunday, September 23, 2018 at 6:00 PM. 1 Introduction 0.
CSCI0330 Intro Computer Systems Doeppner Lab 02 - Tools Lab Due: Sunday, September 23, 2018 at 6:00 PM 1 Introduction 0 2 Assignment 0 3 gdb 1 3.1 Setting a Breakpoint 2 3.2 Setting a Watchpoint on Local
More informationLanguage Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.
Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Goals of this Lecture Help you learn about: Internal testing External testing General
More informationMISRA-C. Subset of the C language for critical systems
MISRA-C Subset of the C language for critical systems SAFETY-CRITICAL SYSTEMS System is safety-critical if people might die due to software bugs Examples Automobile stability / traction control Medical
More informationCS16 Week 2 Part 2. Kyle Dewey. Thursday, July 5, 12
CS16 Week 2 Part 2 Kyle Dewey Overview Type coercion and casting More on assignment Pre/post increment/decrement scanf Constants Math library Errors Type Coercion / Casting Last time... Data is internally
More informationTesting. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus
Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized
More informationIntroduction to Problem Solving and Programming in Python.
Introduction to Problem Solving and Programming in Python http://cis-linux1.temple.edu/~tuf80213/courses/temple/cis1051/ Overview Types of errors Testing methods Debugging in Python 2 Errors An error in
More informationCSE 331 Software Design & Implementation. Hal Perkins Fall 2016 Debugging
CSE 331 Software Design & Implementation Hal Perkins Fall 2016 Debugging Ways to get your code right Verification/quality assurance Purpose is to uncover problems and increase confidence Combination of
More informationOutline. Computer programming. Debugging. What is it. Debugging. Hints. Debugging
Outline Computer programming Debugging Hints Gathering evidence Common C errors "Education is a progressive discovery of our own ignorance." Will Durant T.U. Cluj-Napoca - Computer Programming - lecture
More informationChapter 5 Errors. Bjarne Stroustrup
Chapter 5 Errors Bjarne Stroustrup www.stroustrup.com/programming Abstract When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with incomplete problem specifications,
More informationVerification and Validation
Chapter 5 Verification and Validation Chapter Revision History Revision 0 Revision 1 Revision 2 Revision 3 Revision 4 original 94/03/23 by Fred Popowich modified 94/11/09 by Fred Popowich reorganization
More informationDebugging INTRODUCTION DEBUGGER WHAT IS VBA'S DEBUGGING ENVIRONMENT?
Debugging INTRODUCTION Logic errors are called bugs. The process of finding and correcting errors is called debugging. A common approach to debugging is to use a combination of methods to narrow down to
More informationImportant From Last Time
Important From Last Time Volatile is tricky To write correct embedded C and C++, you have to understand what volatile does and does not do Ø What is the guarantee that it provides? Don t make the 8 mistakes
More informationReviewing gcc, make, gdb, and Linux Editors 1
Reviewing gcc, make, gdb, and Linux Editors 1 Colin Gordon csgordon@cs.washington.edu University of Washington CSE333 Section 1, 3/31/11 1 Lots of material borrowed from 351/303 slides Colin Gordon (University
More informationGDB Tutorial. A Walkthrough with Examples. CMSC Spring Last modified March 22, GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationThe Compiler So Far. CSC 4181 Compiler Construction. Semantic Analysis. Beyond Syntax. Goals of a Semantic Analyzer.
The Compiler So Far CSC 4181 Compiler Construction Scanner - Lexical analysis Detects inputs with illegal tokens e.g.: main 5 (); Parser - Syntactic analysis Detects inputs with ill-formed parse trees
More informationDebugging with gdb and valgrind
Debugging with gdb and valgrind Dr. Axel Kohlmeyer Associate Dean for Scientific Computing, CST Associate Director, Institute for Computational Science Assistant Vice President for High-Performance Computing
More informationKeil uvision development story (Adapted from (Valvano, 2014a))
Introduction uvision has powerful tools for debugging and developing C and Assembly code. For debugging a code, one can either simulate it on the IDE s simulator or execute the code directly on ta Keil
More informationRegression testing. Whenever you find a bug. Why is this a good idea?
Regression testing Whenever you find a bug Reproduce it (before you fix it!) Store input that elicited that bug Store correct output Put into test suite Then, fix it and verify the fix Why is this a good
More informationStatic Program Analysis Part 1 the TIP language
Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate
More informationWe do not teach programming
We do not teach programming We do not teach C Take a course Read a book The C Programming Language, Kernighan, Richie Georgios Georgiadis Negin F.Nejad This is a brief tutorial on C s traps and pitfalls
More information0x0d2C May your signals all trap May your references be bounded All memory aligned Floats to ints round. remember...
Types Page 1 "ode to C" Monday, September 18, 2006 4:09 PM 0x0d2C ------ May your signals all trap May your references be bounded All memory aligned Floats to ints round remember... Non -zero is true ++
More informationQUIZ. What are 3 differences between C and C++ const variables?
QUIZ What are 3 differences between C and C++ const variables? Solution QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Solution The C/C++ preprocessor substitutes mechanically,
More informationChapter 8. Achmad Benny Mutiara
Chapter 8 SOFTWARE-TESTING STRATEGIES Achmad Benny Mutiara amutiara@staff.gunadarma.ac.id 8.1 STATIC-TESTING STRATEGIES Static testing is the systematic examination of a program structure for the purpose
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationUNIT-4 (COMPILER DESIGN)
UNIT-4 (COMPILER DESIGN) An important part of any compiler is the construction and maintenance of a dictionary containing names and their associated values, such type of dictionary is called a symbol table.
More informationTesting and Debugging C Programming and Software Tools. N.C. State Department of Computer Science
Testing and Debugging C Programming and Software Tools N.C. State Department of Computer Science Introduction Majority of software development is testing, debugging, and bug fixing The best software developers
More informationDebugging. ICS312 Machine-Level and Systems Programming. Henri Casanova
Debugging ICS312 Machine-Level and Systems Programming Henri Casanova (henric@hawaii.edu) Debugging Even when written in high-level languages, programs have bugs Recall the thought that when moving away
More informationPage 1. Stuff. Last Time. Today. Safety-Critical Systems MISRA-C. Terminology. Interrupts Inline assembly Intrinsics
Stuff Last Time Homework due next week Lab due two weeks from today Questions? Interrupts Inline assembly Intrinsics Today Safety-Critical Systems MISRA-C Subset of C language for critical systems System
More informationCourse Content. Objectives of Lecture 18 Black box testing and planned debugging. Outline of Lecture 18
Structural Programming and Data Structures Winter 2000 CMPUT 102: Testing and Debugging Dr. Osmar R. Zaïane Course Content Introduction Objects Methods Tracing Programs Object State Sharing resources Selection
More informationQUIZ. Source:
QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Ch. 4: Data Abstraction The only way to get massive increases in productivity is to leverage off other people s code. That
More informationSecure Programming I. Steven M. Bellovin September 28,
Secure Programming I Steven M. Bellovin September 28, 2014 1 If our software is buggy, what does that say about its security? Robert H. Morris Steven M. Bellovin September 28, 2014 2 The Heart of the Problem
More informationPrograms. Function main. C Refresher. CSCI 4061 Introduction to Operating Systems
Programs CSCI 4061 Introduction to Operating Systems C Program Structure Libraries and header files Compiling and building programs Executing and debugging Instructor: Abhishek Chandra Assume familiarity
More informationBLM2031 Structured Programming. Zeyneb KURT
BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help
More informationSemantic Analysis. Lecture 9. February 7, 2018
Semantic Analysis Lecture 9 February 7, 2018 Midterm 1 Compiler Stages 12 / 14 COOL Programming 10 / 12 Regular Languages 26 / 30 Context-free Languages 17 / 21 Parsing 20 / 23 Extra Credit 4 / 6 Average
More informationProgram Verification! Goals of this Lecture! Words from the Wise! Testing!
Words from the Wise Testing On two occasions I have been asked [by members of Parliament], Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out? I am not able rightly
More informationOracle Developer Studio Code Analyzer
Oracle Developer Studio Code Analyzer The Oracle Developer Studio Code Analyzer ensures application reliability and security by detecting application vulnerabilities, including memory leaks and memory
More informationThe First Real Bug. gdb. Computer Organization I McQuain
The First Real Bug 1 Debugging vs Testing 2 Software testing is any activity aimed at evaluating an attribute or capability of a program and determining whether it meets its specified results All about
More informationCMSC 132: OBJECT-ORIENTED PROGRAMMING II
CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code
More informationThe Mercury project. Zoltan Somogyi
The Mercury project Zoltan Somogyi The University of Melbourne Linux Users Victoria 7 June 2011 Zoltan Somogyi (Linux Users Victoria) The Mercury project June 15, 2011 1 / 23 Introduction Mercury: objectives
More informationCS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor
CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static
More informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Words from the Wise On two occasions I have been asked [by members of Parliament],
More informationPROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 PROGRAMMING LANGUAGES A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output. Programming languages
More information18-600: Recitation #3
18-600: Recitation #3 Bomb Lab & GDB Overview September 12th, 2017 1 Today X86-64 Overview Bomb Lab Introduction GDB Tutorial 2 3 x86-64: Register Conventions Arguments passed in registers: %rdi, %rsi,
More informationBasic concepts. Chapter Toplevel loop
Chapter 3 Basic concepts We examine in this chapter some fundamental concepts which we will use and study in the following chapters. Some of them are specific to the interface with the Caml language (toplevel,
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
More informationCS201 Lecture 2 GDB, The C Library
CS201 Lecture 2 GDB, The C Library RAOUL RIVAS PORTLAND STATE UNIVERSITY Announcements 2 Multidimensional Dynamically Allocated Arrays Direct access support. Same as Multidimensional Static Arrays No direct
More informationReliable programming
Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed
More informationCSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation Hal Perkins Winter 2012 Debugging (Slides by Mike Ernst and David Notkin) 1 Ways to get your code right Verification/quality assurance Purpose is to uncover problems
More informationPart 5. Verification and Validation
Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this
More informationProgramming Languages Third Edition. Chapter 7 Basic Semantics
Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol
More informationIDE for medical device software development. Hyun-Do Lee, Field Application Engineer
IDE for medical device software development Hyun-Do Lee, Field Application Engineer Agenda SW Validation Functional safety certified tool IAR Embedded Workbench Code Analysis tools SW Validation Certifications
More informationprintf( Please enter another number: ); scanf( %d, &num2);
CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful
More informationSystems software design. Software build configurations; Debugging, profiling & Quality Assurance tools
Systems software design Software build configurations; Debugging, profiling & Quality Assurance tools Who are we? Krzysztof Kąkol Software Developer Jarosław Świniarski Software Developer Presentation
More informationChapter 9: Dealing with Errors
Chapter 9: Dealing with Errors What we will learn: How to identify errors Categorising different types of error How to fix different errors Example of errors What you need to know before: Writing simple
More informationAgenda. Peer Instruction Question 1. Peer Instruction Answer 1. Peer Instruction Question 2 6/22/2011
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part II) Instructors: Randy H. Katz David A. Patterson http://inst.eecs.berkeley.edu/~cs61c/sp11 Spring 2011 -- Lecture
More informationEliminating Memory Leaks in Symbian OS C++ Projects
Eliminating Memory Leaks in Symbian OS C++ Projects John Pagonis, Symbian Developer Network, January 2005 In Symbian OS, the programming framework, in debug mode, makes sure memory allocations are tracked
More informationLecture 9: July 14, How to Think About Debugging
Lecture 9: July 14, 2011 How to Think About Debugging So, you wrote your program. And, guess what? It doesn t work. L Your program has a bug in it Somehow, you must track down the bug and fix it Need to
More informationDebug Tool Fashion Accessories An showcase of development tool accessories designed to enhance your debug session
Debug Tool Fashion Accessories An showcase of development tool accessories designed to enhance your debug session July 2012 This webinar takes a look at some of the available debug and emulation tool accessories
More informationCS2141 Software Development using C/C++ Debugging
CS2141 Software Development using C/C++ Debugging Debugging Tips Examine the most recent change Error likely in, or exposed by, code most recently added Developing code incrementally and testing along
More informationChanging the Embedded World TM. Module 3: Getting Started Debugging
Changing the Embedded World TM Module 3: Getting Started Debugging Module Objectives: Section 1: Introduce Debugging Techniques Section 2: PSoC In-Circuit Emulator (ICE) Section 3: Hands on Debugging a
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationEW The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually.
EW 25462 The Source Browser might fail to start data collection properly in large projects until the Source Browser window is opened manually. EW 25460 Some objects of a struct/union type defined with
More informationCS1622. Semantic Analysis. The Compiler So Far. Lecture 15 Semantic Analysis. How to build symbol tables How to use them to find
CS1622 Lecture 15 Semantic Analysis CS 1622 Lecture 15 1 Semantic Analysis How to build symbol tables How to use them to find multiply-declared and undeclared variables. How to perform type checking CS
More informationJava Programming. Zheng-Liang Lu. Java 308 Spring Department of Computer Science & Information Engineering National Taiwan University
Java Programming Zheng-Liang Lu Department of Computer Science & Information Engineering National Taiwan University Java 308 Spring 2019 Class Information Instructor: Zheng-Liang Lu Email: d00922011@ntu.edu.tw
More informationCS 11 C track: lecture 6
CS 11 C track: lecture 6 Last week: pointer arithmetic This week: The gdb program struct typedef linked lists gdb for debugging (1) gdb: the Gnu DeBugger http://courses.cms.caltech.edu/cs11/material /c/mike/misc/gdb.html
More informationH8 C-SPY. User Guide WINDOWS WORKBENCH VERSION
H8 C-SPY User Guide WINDOWS WORKBENCH VERSION COPYRIGHT NOTICE Copyright 1998 IAR Systems. All rights reserved. No part of this document may be reproduced without the prior written consent of IAR Systems.
More informationDETERMINISTICALLY TROUBLESHOOTING NETWORK DISTRIBUTED APPLICATIONS
DETERMINISTICALLY TROUBLESHOOTING NETWORK DISTRIBUTED APPLICATIONS Debugging is all about understanding what the software is really doing. Computers are unforgiving readers; they never pay attention to
More informationThis paper was presented at DVCon-Europe in November It received the conference Best Paper award based on audience voting.
This paper was presented at DVCon-Europe in November 2015. It received the conference Best Paper award based on audience voting. It is a very slightly updated version of a paper that was presented at SNUG
More informationMPLAB C1X Quick Reference Card
MPLAB C1X Quick Reference Card 34 MPLAB C17 Quick Reference MPLAB C17 Command Switches Command Description /?, /h Display help screen /D[=] Define a macro /FO= Set object file name /FE=
More informationDevelopment Tools. 8-Bit Development Tools. Development Tools. AVR Development Tools
Development Tools AVR Development Tools This section describes some of the development tools that are available for the 8-bit AVR family. Atmel AVR Assembler Atmel AVR Simulator IAR ANSI C-Compiler, Assembler,
More informationEliminate Memory Errors to Improve Program Stability
Introduction INTEL PARALLEL STUDIO XE EVALUATION GUIDE This guide will illustrate how Intel Parallel Studio XE memory checking capabilities can find crucial memory defects early in the development cycle.
More informationWe are built to make mistakes, coded for error. Lewis Thomas
Debugging in Eclipse Debugging 1 We are built to make mistakes, coded for error. Lewis Thomas It is one thing to show a man that he is in error, and another to put him in possession of the truth. John
More informationMore C Pointer Dangers
CS61C L04 Introduction to C (pt 2) (1) inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Must-see talk Thu 4-5pm @ Sibley by Turing Award winner Fran Allen: The Challenge of Multi-Cores: Think Sequential,
More informationCSci 4061 Introduction to Operating Systems. Programs in C/Unix
CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,
More informationCSE 331 Software Design and Implementation. Lecture 16 Debugging
CSE 331 Software Design and Implementation Lecture 16 Debugging Leah Perlmutter / Summer 2018 Announcements Announcements Reading 6 is posted, Quiz 6 coming out tonight Congrats on making it past HW6 due
More informationCS2: Debugging in Java
CS2: Debugging in Java 1. General Advice Jon Cook (LFCS) April 2003 Debugging is not always easy. Some bugs can take a long time to find. Debugging concurrent code can be particularly difficult and time
More informationCSE 143. Programming is... Principles of Programming and Software Engineering. The Software Lifecycle. Software Lifecycle in HW
Principles of Programming and Software Engineering Textbook: hapter 1 ++ Programming Style Guide on the web) Programming is......just the beginning! Building good software is hard Why? And what does "good"
More informationPage 1. Last Time. Today. Embedded Compilers. Compiler Requirements. What We Get. What We Want
Last Time Today Low-level parts of the toolchain for embedded systems Linkers Programmers Booting an embedded CPU Debuggers JTAG Any weak link in the toolchain will hinder development Compilers: Expectations
More informationembos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1
embos Real Time Operating System CPU & Compiler specifics for RENESAS M16C CPUs and HEW workbench Document Rev. 1 A product of SEGGER Microcontroller GmbH & Co. KG www.segger.com 2/28 embos for M16C CPUs
More informationSo far, we know: Wednesday, October 4, Thread_Programming Page 1
Thread_Programming Page 1 So far, we know: 11:50 AM How to create a thread via pthread_mutex_create How to end a thread via pthread_mutex_join How to lock inside a thread via pthread_mutex_lock and pthread_mutex_unlock.
More informationAlan J. Perlis - Epigrams on Programming
Programming Languages (CS302 2007S) Alan J. Perlis - Epigrams on Programming Comments on: Perlis, Alan J. (1982). Epigrams on Programming. ACM SIGPLAN Notices 17(9), September 1982, pp. 7-13. 1. One man
More informationRelease Bugs solved
Release 3363 Bugs solved All functions with the TO suffix don t handle RTCC wait-times correctly. The yrtccx.c examples were not distributed in release 3356. Those examples handle the low power functions
More informationThe basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table
SYMBOL TABLE: A symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is associated with information relating
More informationProgram Verification. Aarti Gupta
Program Verification Aarti Gupta 1 Agenda Famous bugs Common bugs Testing (from lecture 6) Reasoning about programs Techniques for program verification 2 Famous Bugs The first bug: A moth in a relay (1945)
More informationLearning to Program with Haiku
Learning to Program with Haiku Lesson 2 Written by DarkWyrm All material 2010 DarkWyrm Our first couple of programs weren't all that useful, but as we go along, you'll find that you can do more and more
More informationAllinea DDT Debugger. Dan Mazur, McGill HPC March 5,
Allinea DDT Debugger Dan Mazur, McGill HPC daniel.mazur@mcgill.ca guillimin@calculquebec.ca March 5, 2015 1 Outline Introduction and motivation Guillimin login and DDT configuration Compiling for a debugger
More informationDebugging Page 1. Current context. Monday, October 15, :38 PM
Debugging Page 1 Current context 4:38 PM Debugging Wednesday, October 10, 2012 9:51 AM The art of debugging Actually a misnomer. You aren't "debugging a program." You're "debugging your understanding"
More informationName: Class: Date: 2. Today, a bug refers to any sort of problem in the design and operation of a program.
Name: Class: Date: Chapter 6 Test Bank True/False Indicate whether the statement is true or false. 1. You might be able to write statements using the correct syntax, but be unable to construct an entire,
More informationQUIZ on Ch.5. Why is it sometimes not a good idea to place the private part of the interface in a header file?
QUIZ on Ch.5 Why is it sometimes not a good idea to place the private part of the interface in a header file? Example projects where we don t want the implementation visible to the client programmer: The
More information