MySQL UDF的调试方式 - debugview

原创 2003年08月05日 10:59:00

MySQL UDF的调试方式

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

首先我们需要下载接收端,当然有心人也可以自己写一个。在 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 * 类型参数传递给WiNDOWS API。这里简单的以C语言字符控制函数为例。

例子:

#include <stdio.h>  /* 函数- sprintf */
#include <windows.h> /* 挂接windows api */
/* ...........省略   */
char* __stdcall my_name(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
{
OutputDebugStringA("--UDF:my_name()被调用"); /* 调用了?*/
char *me = "my name";

/*---- debuger start----*/
        char debugermsg[256]={0};
        sprintf(debugermsg, "%s", me);
        OutputDebugStringA(debugermsg);
        /*---- debuger end----*/

 return me;
}

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

接收调试信息

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

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

VS2012编译调试WDM驱动(KdPrint无调试信息 debugview win7无调试信息)

对于WDM驱动 VS2012有向导可以新建WDM项目 如图 这点说明不用自己配置 文件目录 C/C++ 选项 LINK 选项 等一系列的参数 比以前方便了不少 新建以后是空项目 放入《windo...
  • whatday
  • whatday
  • 2013年07月19日 18:37
  • 8335

DebugView 调试入门

软件下载地址:点击打开链接 debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。支持Debug、Release模式编译的程序(即该软件捕获的...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2015年04月10日 21:39
  • 9436

MySQL 利用UDF执行命令

UDF即User-Defined Functions lib_mysqludf_sys 在github的介绍: A UDF library with functions to interact ...
  • x728999452
  • x728999452
  • 2016年09月02日 14:56
  • 3007

简单点,搬砖的方式简单点,hive mysql 导入数据的UDF,分享给小伙伴们

我们使用hive一般是执行离线统计分析,然后将执行的结果导入到Mysql的表中供前端报表可视化展现来查询。 导回mysql的方式有许多,以前是用sqoop导回Mysql,还有人用hive jdbc查询...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2016年11月30日 11:12
  • 1057

DebugView调试C#程序 学习总结

DebugView调试C#程序 http://www.cnblogs.com/ahuo/archive/2007/04/09/705886.html using System; usin...
  • bcbobo21cn
  • bcbobo21cn
  • 2017年08月06日 19:51
  • 404

DebugView用于VC++调试

1.debugview http://technet.microsoft.com/en-us/sysinternals/bb896647
  • songtianming
  • songtianming
  • 2014年06月23日 10:15
  • 1703

mysql-udf-http

  • 2016年03月08日 17:58
  • 1.32MB
  • 下载

MYSQL_UDF 5.0.rar

  • 2015年06月06日 00:13
  • 359KB
  • 下载

mysql udf c文件

  • 2014年10月21日 09:43
  • 11KB
  • 下载

MYSQL的UDF开发的资源文件

  • 2008年04月07日 16:26
  • 9KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL UDF的调试方式 - debugview
举报原因:
原因补充:

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