Debug.cpp
上传用户:nnxzhh
上传日期:2007-01-11
资源大小:742k
文件大小:2k
开发平台:

WINDOWS

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright 1999 - 2000 Mark Roddy
  4. // All Rights Reserved
  5. //
  6. // Hollis Technology Solutions
  7. // 94 Dow Road
  8. // Hollis, NH 03049
  9. // info@hollistech.com
  10. //
  11. // Synopsis: 
  12. // 
  13. //
  14. // Version Information:
  15. //
  16. // $Header: /iphook/sys/driver/Debug.cpp 4     4/23/00 5:10p Markr $ 
  17. //
  18. ///////////////////////////////////////////////////////////////////////////////
  19. #include <stdarg.h>
  20. #include "stdio.h"
  21. #include "stddef.h"
  22. #include "htsglib.h"
  23. HTS_DEBUG_THIS_FILE
  24. ULONG HtsDebugLevel = HTS_DEBUG_LOW;
  25. #if DBG
  26. #define DEBUG_BUFFER_SIZE 256
  27. void
  28. HtsDebugPrint(
  29.     ULONG Level,
  30.     PCHAR Format,
  31.     ...
  32.     )
  33. {
  34. CHAR buffer[DEBUG_BUFFER_SIZE];
  35.     va_list args;
  36.     va_start(args, Format);
  37.     if ((Level & HTS_DEBUG_MASK) >= HtsDebugLevel) {
  38.         _vsnprintf(buffer, DEBUG_BUFFER_SIZE, Format, args);
  39.         DbgPrint(buffer);
  40.     }
  41.     va_end(args);
  42. }
  43. #else
  44. void
  45. HtsDebugPrint(
  46.     ULONG Level,
  47.     PCHAR Format,
  48.     ...
  49.     )
  50. {
  51. }
  52. #endif
  53. ULONG HtsDriverId = 0;
  54. void HtsBugCheck(PCHAR message, ULONG param1, ULONG param2, ULONG param3, ULONG param4)
  55. {
  56. DbgPrint("nnKernel Failure: "%s" nnn"
  57.      "[                       System Halting                           ]n", message);
  58. KeBugCheckEx(BUGCODE_ID_DRIVER, param1, param2, param3, param4);
  59. }
  60. ULONG HtsExceptionFilter( ULONG Code, PEXCEPTION_POINTERS pointers)
  61. {
  62.     PEXCEPTION_RECORD ExceptionRecord;
  63.     PCONTEXT Context;
  64.     ExceptionRecord = pointers->ExceptionRecord;
  65.     Context = pointers->ContextRecord;
  66. #if DBG
  67.     DbgPrint("*************** Exception Failure **************************n");
  68.     DbgPrint("n");
  69.     DbgPrint(" An unexpected exception occurred.n");
  70.     DbgPrint(" Exception record at %x Context record at %xn",
  71.         ExceptionRecord, Context);
  72.     DbgPrint(" WindBag: execute "!cxr %x; !exr %x; !kb" for stacktracenn",
  73.         Context, ExceptionRecord);
  74.     DbgBreakPoint();
  75. #endif
  76.     return EXCEPTION_EXECUTE_HANDLER;
  77. }
  78. ///////////////////////////////////////////////////////////////////////////////
  79. // 
  80. // Change History Log
  81. //
  82. // $Log: /iphook/sys/driver/Debug.cpp $
  83. // 
  84. // 4     4/23/00 5:10p Markr
  85. // 
  86. // 3     1/27/00 10:35p Markr
  87. // Prepare to release!
  88. //
  89. ///////////////////////////////////////////////////////////////////////////////