From: fvoss@pyrite.nj.pyramid.com (Fred Voss)
Newsgroups: pyr.syseng,comp.sys.pyramid
Subject: OSx Kernel Debugger Classes
Date: 28 Jul 92 15:55:40 GMT
Followup-To: pyr.syseng
Distribution: usa
Organization: Pyramid Technology Corp, NJ Professional Svcs.



Pyramid Educational Services, in Mountain View, is scheduling two OSx Kernel
Debugger courses on the following dates:

	August 27 and 28
	September 17 and 18

If you wish to sign up for either of these two courses, please call Donna
Pantaleoni, Registrar at 1-800-843-9058 or extension x8388.

Each course spans two days and includes the following topics and objectives:

List the functions of the OSx kernel.
Define the term panic as it relates to the OSx operating system.
Identify the potential causes of a system panic.
Describe the layout of Pyramid physical memory.
Describe the function of the CPU data cache and instruction cache.
Define the purpose of the kernel debugger.
Describe five ways to invoke the kernel debugger.
Describe how the PCOS/COS bootflag affects the kernel debugger.
Describe the creation process of a vmcore file.
Configure the system to automatically generate a vmcore following a 
system panic.
Describe the steps to manually create a vmcore with the /etc/savecore 
utility.
List the differences between the kernel debugger and the /etc/crash 
utility.
List the possible settings for the variable DUMPTHESE.
Create a new kernel which has the kernel debugger included in  the 
compilation.
Generate an executable program based on the Pyramid OSx instruction 
set.
List the components of a Pyramid OSx instruction.
Use the Pyramid Technology Architecture Manual to decode an OSx 
instruction.
Correlate a source code program written in the C programming 
language to its disassembled instruction set.
Describe the a.out format of an executable program.
Describe the virtual memory map of a process.
List twelve key elements of the proc structure.
List the five process region types in OSx.
Describe which portions of a process may be swapped.
Describe the purpose and construction of a process control stack.
List the special control stack registers involved in a system interrupt 
routine.
List the special control stack registers involved is a system exception 
(trap) situation.
Based on the Pyramid Technology System Architecture Manual 
description of system exceptions, list the values placed into the first 6 
temporary registers.
Describe two situations in which the data stack would be used.
Describe the purpose and construction of the process control block 
(PCB).
Describe the contents of the process status word (PSW).
Draw a diagram of the relationships between the following kernel tables 
and label the structure elements involved in the relationships: proc 
table, pregion table, region table, rlists and the pde tables.
List twelve key elements of the user (u_area) structure.
Draw a diagram of the relationship between the user structure and the 
system open file table.
Based on the Pyramid Technology System Architecture Manual 
descriptions of the global process table (GPT), the level 1 process 
memory resident table (PMRT) and level 2 PMRT, list the steps to 
convert a virtual address to a physical address.
Using the gpid element of a proc structure for a selected process, 
determine the physical address of the u_area of that process.
Describe the use of the general kernel debugger and /etc/crash 
commands.
List the elements in a 'panic fingerprint'.
Using the kernel debugger or /etc/crash, list the active processes in the 
system or captured by the vmcore image. Identify the information 
provided for each process in the listing.
With /etc/crash, selectively list related processes based on the following 
common attributes: process id, state, wait channel, tty or name. (NOTE 
THE DIFFERENCE IN SYNTAX FOR THE KERNEL DEBUGGER).
In /etc/crash, determine which process is the 'current' process.
Describe two methods of changing to a new 'current' process.
Print the proc structure elements for a selected process.
Print the control stack trace of a process and describe function calling 
sequence in the stack.  Identify the information provided for each 
control stack frame.
Change the control stack pointer to a different control stack frame.
Display the registers for a particular control stack frame.
Display the contents of a virtual address in the following formats: hex, 
ASCII, string, disassembled code.
Use the ps command to print structures listed in the directory /usr/crash/
lib.
Create a tailored structure description for a kernel structure type.
List the kernel debugger commands that display specific kernel 
structures.
List the command unique to the kernel debugger and describe their 
usage.
Force a system panic through the  kernel debugger.
Change the dump size and dump device for a system through the kernel 
debugger.
List the initial steps in debugging all panics.
Define the use of kernel semaphores.
List the initial steps in debugging a Semaphore Time-out panic.
For a vmcore, explain the values held in the array savesemas[].
Use a tags file in a source code directory to pinpoint the source code 
instructions that correlate to the disassembled code from a panic 
process control stack frame. (NOT A TRIVIAL TASK).
--