[go: up one dir, main page]

win_dbg_logger 0.1.0

A logger for use with Windows debuggers.
Documentation
  • Coverage
  • 91.67%
    11 out of 12 items documented1 out of 10 items with examples
  • Size
  • Source code size: 8.03 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.57 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • sivadeilra/win_dbg_logger
    10 3 4
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • sivadeilra

A logger for use with Windows debuggers.

Windows allows applications to output a string directly to debuggers. This is very useful in situations where other forms of logging are not available. For example, stderr is not available for GUI apps.

Windows provides the OutputDebugString entry point, which allows apps to print a debug string. Internally, OutputDebugString is implemented by raising an SEH exception, which the debugger catches and handles.

Raising an exception has a significant cost, when run under a debugger, because the debugger halts all threads in the target process. So you should avoid using this logger for high rates of output, because doing so will slow down your app.

Like many Windows entry points, OutputDebugString is actually two entry points: OutputDebugStringA (multi-byte encodings) and OutputDebugStringW (UTF-16). In most cases, the *A version is implemented using a "thunk" which converts its arguments to UTF-16 and then calls the *W version. However, OutputDebugStringA is one of the few entry points where the opposite is true.

This crate can be compiled and used on non-Windows platforms, but it does nothing. This is intended to minimize the impact on code that takes a dependency on this crate.