嗨,我们正在将x86应用程序作为一个服务安装在windows 2008 R2上,该服务使用OutputDebugString作为调试消息。
问题是,DebugView实用程序只有在应用程序以提升模式从控制台运行时才捕获应用程序的调试输出,而不是作为服务运行。
我没有发现任何KB可以直接讨论OutputDebugString在windows 2008 R2中的限制。
有人遇到过这样的问题吗?这样的限制真的存在吗?
UPD:如果这一点重要的话,我们正在使用终端服务连接到服务器。
发布于 2012-10-24 20:03:00
更新:这似乎是解决这个问题的办法。是一个特殊的内核模式驱动程序,它正确地创建互斥对象。
Windows和OutputDebugString使用互斥、共享内存缓冲区和两个事件来回传递消息。在试图读取消息时,似乎有时会出现权限错误。也许这是在写消息的时候发生的。
我认为使用依赖步行器分析应用程序将是找到CreateMutex调用的最佳方法,而不是逐步使用WinDbg进行反汇编。
https://serverfault.com/questions/404043
复制相似问题