Last change
on this file was 82789, checked in by vboxsync, 5 years ago |
Devices/Trace: Tracing driver to log execution of interface callbacks between devices and drivers (for debugging user reported issues), see README on how to use
|
-
Property svn:eol-style
set to
native
-
Property svn:keywords
set to
Author Date Id Revision
|
File size:
1.9 KB
|
Rev | Line | |
---|
[82789] | 1 | /* $Id: README.txt 82789 2020-01-19 12:19:24Z vboxsync $ */
|
---|
| 2 | Introduction:
|
---|
| 3 |
|
---|
| 4 | This is a simple tracing driver which hooks into a driver chain and logs all executed callbacks for a particular interface
|
---|
| 5 | with their parameters.
|
---|
| 6 | It uses the RTTraceLog API to write the data into a compact binary log file which can be examined using RTTraceLogTool
|
---|
| 7 | (which is still very basic at this point but will be enhanced when certain features are required).
|
---|
| 8 |
|
---|
| 9 | Currently implemented interfaces are (implement more on a need basis and add them here):
|
---|
| 10 | - PDMISERIALPORT and PDMISERIALCONNECTOR
|
---|
| 11 |
|
---|
| 12 | Benefits:
|
---|
| 13 |
|
---|
| 14 | This driver allows to gather more detailed information about the interaction between devices and attached drivers without
|
---|
| 15 | the need to add additional debug/logging code. This is especially useful for debugging user reported issues as it can avoid
|
---|
| 16 | having to send a special testbuil to the user (provided the interfaces are implemented by the trace driver),
|
---|
| 17 | the user just requires instructions on how to enable the tracing for her particular setup.
|
---|
| 18 |
|
---|
| 19 | Later on this might also come in handy for a driver testbench because it allows recording the interaction from a complicated setup and
|
---|
| 20 | allows replaying it in a more controlled/compact environment for unit testing or fuzzing.
|
---|
| 21 |
|
---|
| 22 | Setup:
|
---|
| 23 |
|
---|
| 24 | To inject the driver into an existing driver chain the PDM driver transformations feature is used.
|
---|
| 25 | The following example injects the trace driver right before every instance of the "Host Serial" driver:
|
---|
| 26 |
|
---|
| 27 | VBoxManage setextradata <VM name> "VBoxInternal/PDM/DriverTransformations/SerialTrace/AboveDriver" "Host Serial"
|
---|
| 28 | VBoxManage setextradata <VM name> "VBoxInternal/PDM/DriverTransformations/SerialTrace/AttachedDriver/Config/TraceFilePath" "<trace/log/file/path>"
|
---|
| 29 | VBoxManage setextradata <VM name> "VBoxInternal/PDM/DriverTransformations/SerialTrace/AttachedDriver/Driver" "IfTrace"/>
|
---|
| 30 |
|
---|
| 31 |
|
---|
| 32 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.