用WH_MOUSE做hook时,用调试语句OutputDebugString打印调试信息的时候出现的一个问题

原创 2011年05月07日 20:58:00

直接上代码

我hook的是一个全局钩子,所以应该每点击一次鼠标都应该打印出窗口标题来,可实际上并没有按照预想中的来,只打印了第一次鼠标操作,后面的操作就没打印出来了。开始以为是我没有hook正确,g_hmouse变量有问题,就准备把它打印出来看下。奇怪的事发生了,每次鼠标操作都能打印出来了。好晕。我就把前三行代码取消注释了第一句char buf1[50]={0};居然也能打印出来所有鼠标操作。

自己判断可能跟打印的变量有关,我就把下面几行全部注销了,

 

结果也能打印出来。呵呵,确实证明了我的想法。

 

只是现在还没找出来到底是怎么回事。 不知道具体是哪个变量影响了打印。

虽然已经不影响后面的继续了,但是还是准备找出原因来。

 

 

 

我找到原因了,我卖个关子。大家猜下是什么原因,呵呵。 找了好久,我一条一条的加,最终发现只要把/n***************/nChild,第一个/n去掉就ok了。

使用OutputDebugString做调试输出

     昨天发现服务器通讯并发有问题,所以希望在通讯层增加写调试信息输出来看看。当时首先想到的是用一般经常使用的Codesite,但把调试代码增加到通讯单元后,编译居然跑不起来了,一跟踪才发现,原来...
  • happy_david
  • happy_david
  • 2007年01月20日 00:38
  • 14583

让bochs调试时的终端输出有颜色的文本的方法

最近在摆弄linux0.01的内核代码,在利用bochs调试时,发现控制台输入终端的字符颜色都一样,比较难直观地看出命令与指令的区分。后面在网上看到有网友贴终端的利用终端的字符颜色由转义序列(Esca...
  • suquan629
  • suquan629
  • 2016年08月27日 15:54
  • 536

谈在Debug和Release模式下输出调试信息

在调试程序时,有时候设置断点单步运行并不能查出问题的所在,比如程序可能在运行一段时间后死掉了,或者对于Release版本运行不正常等等原因吧,这时需要通过设置一些输出信息,来帮助定位错误发生的位置,这...
  • miao0967020148
  • miao0967020148
  • 2016年07月29日 15:54
  • 1407

python输出调试信息

# -*- coding: utf-8 -*- def get_cur_info1(): print __file__ # 当前文件名 import sys def get_cur_info2(...
  • xufeng0991
  • xufeng0991
  • 2016年02月04日 14:59
  • 1637

谈在Debug和Release模式下输出调试信息 .

在调试程序时,有时候设置断点单步运行并不能查出问题的所在,比如程序可能在运行一段时间后死掉了,或者对于Release版本运行不正常等等原因吧,这时需要通过设置一些输出信息,来帮助定位错误发生的位置,这...
  • ATMCash4423
  • ATMCash4423
  • 2013年06月24日 09:25
  • 653

Windows下调试信息 TRACE OutputDebugString

  有的时候程序并没有控制台, 这时打印肯定是不行了, 写文件是个通用的方法, 但比较适合系统上线或者只能使用该方法调试时, windows下有两个打印调试信息的函数, TRACE OutputDeb...
  • q191201771
  • q191201771
  • 2011年04月19日 11:06
  • 2849

python打印log调试信息的方法

打印错误跟踪的方法: 方法1.打印到屏幕 try:     i = 0     mydbhandler.executemany(sql, tmp)     logging.info("[...
  • co_diy
  • co_diy
  • 2012年02月08日 15:54
  • 4977

MFC打印调试信息方法

在调试MFC程序时,我们经常需要查看特定位置变量的输出值。或者在某特定条件执行时,给出一个输出标识。 一般来说,有3种方法: 1) 调用TRACE(LPCTSTR lpszFormat, ...
  • Hungryday
  • Hungryday
  • 2014年07月24日 20:16
  • 603

c和C++的调试打印输出方法

#define     ERR_DEBUG_SWITCH        1 #ifdef    ERR_DEBUG_SWITCH #define pr_err(fmt,args...) print...
  • xuan1986
  • xuan1986
  • 2016年08月13日 15:49
  • 892

让Hibernate输出SQL语句以便更加深入调试程序----参数配置

在J2ee应用中,如果采用Hibernate框架,可以自动建立数据库实体与Java实体类的映射关系,大大方便Java程序进行持久化对象访问和操作,从而明显提高企业应用开发效率,减轻Java程序与后台数...
  • xyw591238
  • xyw591238
  • 2016年03月29日 10:58
  • 2677
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用WH_MOUSE做hook时,用调试语句OutputDebugString打印调试信息的时候出现的一个问题
举报原因:
原因补充:

(最多只允许输入30个字)