- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WPF 应用程序使用第三方 Win32 dll,通过 OutputDebugString 记录消息。
我可以在 Visual Studio 中或通过 DebugView 查看 OutputDebugString 消息,但我不想要求我的客户运行 DebugView。我想从 OutputDebugString 捕获消息并自动将它们记录到文件中,因此如果客户遇到问题,我可以要求她向我发送该日志文件。
这可能吗?或者用户是否必须启动 DebugView,重现错误,然后以这种方式向我发送日志?
最佳答案
Hook OutputDebugStringW
。我建议使用Detours为此的库。
#include <windows.h>
#include <detours.h>
#pragma comment(lib, "detours.lib")
BOOL SetHook(__in BOOL bState, __inout PVOID* ppPointer, __in PVOID pDetour)
{
if (DetourTransactionBegin() == NO_ERROR)
if (DetourUpdateThread(GetCurrentThread()) == NO_ERROR)
if ((bState ? DetourAttach : DetourDetach)(ppPointer, pDetour) == NO_ERROR)
if (DetourTransactionCommit() == NO_ERROR)
return TRUE;
return FALSE;
{
#define InstallHook(x, y) SetHook(TRUE, x, y)
VOID (WINAPI * _OutputDebugStringW)(__in_z_opt LPCWSTR lpcszString) = OutputDebugStringW;
VOID WINAPI OutputDebugStringHook(__in_z_opt LPCWSTR lpcszString)
{
// do something with the string, like write to file
_OutputDebugStringW(lpcszString);
}
// somewhere in your code
InstallHook((PVOID*)&_OutputDebugStringW, OutputDebugStringHook);
关于winapi - 将 OutputDebugString 记录到文件(没有 DebugView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24320665/
我正在对一个小型应用程序进行一些测试,以了解 firebase-analytics 的工作原理。这是 MainActivity 的代码: public class MainActivity exten
我正在使用Sysinternals DebugView 用于在测试过程中进行调试/记录,它非常好。不过我在想是否有更高级的工具。 我正在寻找的功能: 实时过滤器 - 记录所有内容(嗯,所有“有趣”的内
我需要编写可以创建可以在 DebugView 中显示的调试消息的应用程序.为此,我使用代码: int main () { OutputDebugString(L"hello"); re
我有一个使用 C++ 和 Visual Studio 2010 完成的应用程序,它使用 OutputDebugStringW 触发大量调试信息(每秒大约 50 个,这显然很多)。 如果我打开关闭 De
当使用以下代码在 Windows 7 机器上调用 OutputDebugString 时,我只看到“????”在 DebugView 的打印列中。我认为这可能是一个与编码相关的问题,但不确定之前是否有
我已经在 Windows 7 和 Windows 8 64 位机器以及 Windows 7 32 位机器上安装了 DebugView 4.79。在所有这些上,当以管理员身份启动 DebugView 时
我似乎无法停止我的手机在 firebase Debug模式下运行。 我运行了 adb shell setprop debug.firebase.analytics.app .none。但该设备仍然存在
我试图在 firebase 中使用 debugview,但它无法检测到我的设备 我尝试了答案--> DebugView no devices available https://stackoverfl
我使用 OutputDebugString 转储\t 分隔数据,然后使用 ex-Sysinternals DebugView 捕获它。 问题是 DebugView 中的所有数据似乎都是以空格分隔的,因
我正在像这样手动创建一个表达式树 var innerAddition = Expression.Add(Expression.Constant(5), Expression.Constant(9));
我正在尝试将设备连接到 DebugView。但是,不要连接。 我引用了 DebugView document . 我所知道的就是这份文件中的内容。 是否还有其他原因无法连接? 我模拟了以下内容。 打开
我的想法是这样的 C:\myprog.exe > 调试 View 但我不想创建名为“DebugView”的文件,而是希望 DebugView 捕获 myprog.exe 的输出。 非常感谢任何评论!
我正在使用 Firebase Analytics。我注册了两个用户属性并且我有两个自定义事件,每个事件包括 3 到 50 个不同的选项选项。我遇到的问题是,当我设置用户属性时,DebugView 经常
是否有与 Windows DebugView 等效的 Linux?我想在控制台上远程监控 Linux C/C++ 程序的 print 语句。我对监视用户空间程序很感兴趣(我尝试使用 dmesg 但它仅
在 Windows 下,我们使用 DebugView监视 .NET 应用程序的跟踪和调试输出。由于我们目前正在将应用程序移植到 Linux 上的单声道,我想知道是否有类似的工具。 我们目前正在将 lo
我的 WPF 应用程序使用第三方 Win32 dll,通过 OutputDebugString 记录消息。 我可以在 Visual Studio 中或通过 DebugView 查看 OutputDeb
出于测试目的,我计划组装一个小应用程序,该应用程序将监听来自应用程序的特定事件并在此时与其交互。 鉴于我们在测试过程中无法更改应用程序代码,从我的角度来看,理想的做法是听取来自应用程序的调试跟踪,有点
我想在 Firebase 中跟踪我的应用中的应用内购买。根据 Firebase 的文档,它是由框架自动记录的。为了测试我是否正确配置和安装了所有内容,我使用 -FIRDebugEnabled 打开 D
我在我的 android 代码中放置了一些用户属性,例如:( https://firebase.google.com/docs/analytics/android/properties ) mFire
我已将 Firebase Analytics 事件添加到我的 android 应用程序中,当我使用 DebugView 对其进行测试时,我可以清楚地看到这些事件及其所有属性。 但是,启动应用程序后,我
我是一名优秀的程序员,十分优秀!