1 / 9

CMSC212: Intro to Low-Level Programming Concepts

CMSC212: Intro to Low-Level Programming Concepts. Section 0101: 9:00am – 9:50am Section 0102: 10:00am-10:50am Monday & Wednesdays Room 3118. Announcements/Reminders. Quiz #2: This Wednesday (12mins)

desma
Download Presentation

CMSC212: Intro to Low-Level Programming Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CMSC212: Intro to Low-Level Programming Concepts Section 0101: 9:00am – 9:50am Section 0102: 10:00am-10:50am Monday & Wednesdays Room 3118

  2. Announcements/Reminders • Quiz #2: This Wednesday (12mins) • Reminder: Must submit versions of every project that work on at least half the public tests to pass the course (Still can submit Project #1 up until 10:00 tonight) • Today: First, the GNU Project Debugger (GDB) and its innards. Later, a worksheet (based on quiz questions from earlier semesters)

  3. GNU Project Debugger (GDB) • The main idea • Lets your step through your code “line-by-line” during execution • Lets you look/modify variables and their values during run-time • Breakpoints! • Want your program to temporary halt execution on a particular line of code, set a breakpoint • http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html

  4. GNU Project Debugger (GDB) • Programs must be compiled with the option –g to be debugged with gdb • Some common commands with console gdb • r: run: runs the program from the beginning • c: cont: continues execution after breakpoint • n: next: executes next statement, steps over function calls • s: step: executes next statement, steeping into function calls • finish: completes the execution (returns from current function)

  5. GNU Project Debugger (GDB) • Breakpoints • b: break: sets a breakpoint on current line or any line • tb: tbreak: sets a temporary breakpoint on indicated line • d: delete: deletes one or all breakpoints • i b: info breakpoints: lists all currently set breakpoints

  6. GNU Project Debugger (GDB) • Looking at data • p: print: prints a variable’s current value., print/x prints in hex • info locals: prints values of current function’s local variables • display: followed by a variable name which is visible at the current position, prints the value of that variable each time the program execution stops. • undisplay: Cancels the display of variables set in prior display commands

  7. GNU Project Debugger (GDB) • Execution history • where: shows list of active functions, in order from most recent-called back to main function • up: moves up the function which called the current one (to be able to examine its data) • down: move back after calling up • If program crashes during execution (e.g. segfault, use ‘where’ to find out where it happened

  8. GDB with emacs • Hit escape-x • Type ‘gdb’ • The following may appear, just hit enter to launch: gdb –annotate=3 program.x • Begin debugging, hit r • Should see a split window of console and code • set breakpoints using cursor in the code window

  9. Other features: Look at menu ‘GuD’, “GDB-UI”, and “Display other Windows” • Gdb interaction (console) window • display of local variables in the main program • Source code • Runtime stack and current function call chain • List o breakpoints set

More Related