Modifying your KD Trap on the fly
Contributed by Javier Flores Assad (AKA "MTTF Dude")
The normal (by default) KD trap mechanism is the part of the kernel that triggers a break into the debugger when an exception is thrown. Sometimes you are not interested in some exceptions and you don’t want your run to break and need your attention at those exceptions that you are not interested in. For this purpose a new way to ignore or trap exceptions is available.
Requirements:
PB 5.1 (tested on 5.01.1614)
Tested on Magneto 14290 and up
Configuration:
Load up your image in PB normally
Wait until the boot sequence is over and you are in the home screen
Break into the debugger
At the toolbar go to the “Debug” item
In such submenu you will see “Advanced commands” [This will bring up a small dialog with a command: combo box in it]
type in the combo box fex ? and click “Execute” [This command fires the help info displayed at the debug output]
type in the combo box fex on and click “Execute” [This will turn on the Exception filter in the trap mechanism]
type in the combo box fex ap filesys.exe and click “Execute” [This tells the trap mechanism to break into the debugger if an exception is raised from filesys.exe
Close the advance commands window and hit GO
start your stress pass (hopper)
Examples:
If you want to ignore all exceptions except those inside filesys.exe and inside gwes.exe and inside shell32.exe then:
[Break into the debugger and go to Debug à Advanced commands]
(Each line is followed by clicking execute, you can see the reaction in the debug output)
fex on
fex ap filesys.exe
fex ap gwes.exe
fex ap shell32.exe
If you want to ignore all exceptions except those inside filesys.exe and myapp.exe and also you want to break if a stack overflow exception is thrown (at any process)
[Break into the debugger and go to Debug à Advanced commands]
fex on
fex ap filesys.exe
fex ap myapp.exe
fex ac 0xC00000FD
You can also turn of the modified trapping and jump into the normal mode (trapping everything) with the fex off command. Also you can remove exception types and applications with fex dp and fex dc
More Help
Filter Exceptions (Target Side Command):
fex ? - Request help on Filter Exceptions commands
fex on/off - Enable or disable Filter Exceptions functionality
fex ap procname - Add 'procname' to list of processes whos exceptions are allowed
fex dp procname - Delete 'procname' from list of processes
fex ac code - Add 'code' to list of exception codes allowed
fex dc code - Delete 'code' from list of exception codes
-Javier Flores Assad