Last change
on this file since 106129 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
|
Line | |
---|
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.