We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

A debugger from scratch

00:00

Formal Metadata

Title
A debugger from scratch
Title of Series
Number of Parts
50
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
At some stage in your programming life you may well have used a debugger, but did you wonder how it was able to step into and control your executable? In this talk we'll see how debuggers work by building one from scratch in a few lines of Go. In this talk Liz will explore how a debugger gains control of a process with the all-powerful ptrace system call. You'll see how we can find the machine code that corresponds to a line of human-readable source code and vice-versa. She will show how breakpoints are set, explain how the stack gets built up, and demonstrate how to generate a stack trace showing the path to that breakpoint. Even if you know nothing about machine code, you'll leave this talk with a better understanding of how a computer runs an executable, and how a debugger is able to start and stop the executable as you wish.
SpacetimeSystem programmingDebuggerPhysical systemProcess (computing)Control flowRead-only memoryError messageComputer configurationSource codeAddressing modeBefehlsprozessorMachine codeFunction (mathematics)outputComputer virusAddress spaceEmailEntire functionLink (knot theory)InformationFlagSheaf (mathematics)Price indexString (computer science)Data typeConvex hullAreaInformation securityCompilerInformationData structureDebuggerComputer programmingSymbol tableFunctional (mathematics)Address spaceTracing (software)Semiconductor memoryBitBefehlsprozessorMachine codeComputer filePower (physics)MappingEnterprise architectureFile formatDirectory serviceRight angleGoodness of fitSheaf (mathematics)Table (information)EmailPoint (geometry)Correspondence (mathematics)NumberSource codeHexagonLine (geometry)Formal languageWeb pageSingle-precision floating-point formatCommodore VIC-20Structural loadProcess (computing)Set (mathematics)Machine codeSystem callLibrary (computing)Programmer (hardware)Direction (geometry)Letterpress printingVirtual machineComputer virusLink (knot theory)Variable (mathematics)Error messageAxiom of choiceComputer configurationSoftware bugDressing (medical)Domain nameHecke operatorCommutatorPhysical systemLie groupMoment (mathematics)Speech synthesisNetwork topologyOntologyPetri netLevel (video gaming)WebsiteMultiplication signComputer animation
System programmingDebuggerComputer virusComputer programmingSemiconductor memorySource codeAddress spaceUniform resource locatorFunction (mathematics)Tracing (software)OctahedronControl flowPoint (geometry)Process (computing)Functional (mathematics)Multiplication signLine (geometry)Virtual machineData structureInformation privacyWebsiteStudent's t-testAxiom of choiceAreaHecke operatorWordMoment (mathematics)TrailQuicksortAnalytic continuationAttribute grammarBytecodeHexagonPOKEDebuggerMappingError messageMachine codeRight angleSource codeComputer animation
System programmingDebuggerComputer virusExecution unitDrum memoryFunction (mathematics)Stack (abstract data type)BefehlsprozessorSystem callParameter (computer programming)Computer programPointer (computer programming)Address spaceLocal ringVariable (mathematics)Table (information)Dean numberDew pointWebsiteComputer programmingConstructor (object-oriented programming)Ocean currentBitState of matterMultilaterationPoint (geometry)Frame problemArithmetic meanComputer clusterRight angleControl flowMereologyAddress spaceFunction (mathematics)Functional (mathematics)Factory (trading post)Table (information)CASE <Informatik>Pointer (computer programming)Ferry CorstenContent (media)Interrupt <Informatik>Source codeInformationProcess (computing)SpacetimeChainParameter (computer programming)QuicksortHierarchyVariable (mathematics)Computer-assisted translationDampingSemiconductor memory1 (number)Web pageData structure3 (number)Virtual machineForm (programming)BefehlsprozessorLine (geometry)DebuggerStack (abstract data type)Graphics tabletComputer fileNumberRippingSymbol tableComputer animation
System programmingFunction (mathematics)Network topologyCNNInterior (topology)Right angleMultiplication signNumberQuicksortLine (geometry)Stack (abstract data type)Variable (mathematics)NP-hardMachine codeFunctional (mathematics)Computer programmingComputer clusterPoint (geometry)Source code
System programmingExecution unitDebuggerHexagonDifferent (Kate Ryan album)Line (geometry)Right angleNumberProcess (computing)Point (geometry)BitCASE <Informatik>Computer programmingSemiconductor memoryLocal ringVariable (mathematics)Complete metric space7 (number)LeakFamilySatelliteHecke operatorProgram slicingControl flowWebsiteComputer animation
Process (computing)Physical systemControl flowRead-only memorySource codeAddressing modeMachine codeSystem programmingDew pointFunction (mathematics)Electronic meeting systemRange (statistics)Point (geometry)Line (geometry)Functional (mathematics)HexagonSingle-precision floating-point formatHypothesisMachine codeSemiconductor memory7 (number)Letterpress printingBitVirtual machineSource codeXML
System programmingDew pointMaxima and minimaDebuggerComplete metric spaceInformation securityWriting7 (number)Inheritance (object-oriented programming)Line (geometry)MathematicsFunction (mathematics)Process (computing)Power (physics)Set (mathematics)Right angleSource codeComputer animation
Source codeAddressing modeMachine codeSystem programmingDebuggerBlogProfil (magazine)Compilation albumBitRight angleMachine codeDebuggerInformation securityType theoryDampingMultiplication signDefault (computer science)Link (knot theory)Set (mathematics)Scaling (geometry)Computer animation
Transcript: English(auto-generated)