Educ950c - OS/2 Warp System Debug Tools: Basic Skills for Low-Level Program Diagnosis

From Wiki
Jump to: navigation, search

Course Code: CP10950C

About the Course

In this two-day workshop, students become familiar with the way that OS/2 Warp uses the x86 hardware to implement virtual storage. Students are taught how descriptors work, what descriptor tables exist, how page tables are used, and the resulting virtual storage environment in OS/2 Warp. The lecture is oriented to understanding exactly why a trap occurs. Students also learn to read assembler instructions, and how the registers are typically used. Additionally, students are taught how a stack operates. This workshop is a combination of classroom lectures and hands-on lab work. The student will spend a significant portion of the workshop using the dump formatter to display descriptors, page tables, registers, and storage.


To learn how the hardware is exploited to create the virtual storage environment of OS/2 Warp, how to read assembler instructions, how to display the various components that go into resolving a virtual address, as well as how to display storage a number of ways. To learn what the information on a trap screen means. To learn what documentation can be made available for diagnostic purposes, and how to collect it successfully.


Programmers and support personnel who want to learn how to debug software by using OS/2 Warp system debug tools, those who want to learn ow OS/2 Warp implements the virtual storage environment, and those who want to build the basic skills needed to attend the next workshop in this series: Diagnosing Traps in Application Programs.


The workshop will provide a broad base of understanding how the hardware works, and how OS/2 Warp uses it to create the execution environment for 16- and 32-bit programs.


  • What x86 protection mechanisms exist, and how they work
  • Descriptors, descriptor tables, and how to find them
  • Paging, page tables, and how to display them
  • Selector, general, and system registers
  • Reading assembler instructions.
  • What a stack is, and how to mine the data it contains.
  • Directed lab exercises


Some programming skills; a good understanding of arrays, structures, pointers, and linked lists; ability to do hex to binary conversions; ability to use OS/2.


  • N/A