手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >MySQL UDF调试方式debugview的相关方法
MySQL UDF调试方式debugview的相关方法
摘要:MySQL的UDF实质就是一个不需要设置入口点的动态连接库(*Nix称之为共享库)。对于DLL的调试可谓个人有个法。现在我介绍一下一个非常简...

MySQL的UDF实质就是一个不需要设置入口点的动态连接库(*Nix称之为共享库)。对于DLL的调试可谓个人有个法。现在我介绍一下一个非常简单的易用的调试方法。这一方法直接利用WindowsAPI,语言无关、开发工具无关、项目类型无关,典型的三无调试方法。并且,我们从这里讨论的调试方法支持远程调试,对于一时无法掌握开发工具原本调试器而又急于寻找程序错误的朋友此方法非常实用!

首先我们需要下载接收端,当然有心人也可以自己写一个。在http://www.sysinternals.com/ntw2k/freeware/debugview.shtml。透过debugview手册我们可以知道这个工具支持win9x/nt系列,并且支持内核调试!由于其调用的API均只能接收一个char*类型参数,所以有些时候我们需要利用其他的函数有机组合产生人性可读提示。

为了减少复杂程度简单的以来自http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=35166讨论为例,讲解我是如何利用这里工具进行调试的。

1简单输出一行信息,在调试开始时输出一条简单的信息便于我们了解debug到什么地方了。

在程序代码中根据需要加入下边一行

OutputDebugStringA("--UDF:my_name()被调用");

这样一来我就知道我定义的my_name被客户用到了,接着我要关心返回值如何。

2输出返回值

输出返回值方法很多,可以自由组合。自由组合的最终目的是将一个有效的char*类型参数传递给WiNDOWSAPI。这里简单的以C语言字符控制函数为例。

例子:

#include/*函数-sprintf*/

#include/*挂接windowsapi*/

/*...........省略*/

char*__stdcallmy_name(UDF_INIT*initid,UDF_ARGS*args,char*is_null,char*error)

{

OutputDebugStringA("--UDF:my_name()被调用");/*调用了?*/

char*me="myname";

/*----debugerstart----*/

chardebugermsg[256]={0};

sprintf(debugermsg,"%s",me);

OutputDebugStringA(debugermsg);

/*----debugerend----*/

returnme;

}

当在程序中加入了类似代码那么调试就可以开始了,利用这种方式即便不使用"debuger"方式编译仍然可以得到所需的调试信息。

接收调试信息

接收调试信息只要打开debugview程序即可,程序主窗口可以实时返回所需要的调试信息。

其它平台请自行查阅手册获得对应的api,利用这种方式调试方法适当并不会造成任何困扰。

【MySQL UDF调试方式debugview的相关方法】相关文章:

mysql连接过多和死掉以及拒绝服务的解决方法

MySQL UPDATE更新语句精解第1/2页

MySQL与存储过程的相关资料

Debian 6.02 (squeeze)下编译安装 MySQL 5.5的方法

SQL 2005 清空日志的方法

mysql 忘记密码的解决方法(linux和windows小结)

mysql unsigned 用法及相减出现补数溢出解决方法

两大步骤教您开启MySQL 数据库远程登陆帐号的方法

MySQL 创建索引(Create Index)的方法和语法结构及例子

MySQL 1067错误解决方法集合

精品推荐
分类导航