MySQL UDF调试方式debugview

2016-01-29 15:08 10 1 收藏

MySQL UDF调试方式debugview,MySQL UDF调试方式debugview

【 tulaoshi.com - MySQL 】

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   /* 函数- sprintf */
#include  /* 挂接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,利用这种方式调试方法适当并不会造成任何困扰。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

来源:http://www.tulaoshi.com/n/20160129/1495325.html

延伸阅读
标签: Web开发
面对一大段的javascript脚本,以前总是会很头疼,找不到调试他的方法,如果出现什么错误,总是要从头分析,然后插入很多Alert();调试起来很麻烦。      实际上Visual Studio 对JavaScript 脚本是可以设置断点进行调试的。只是有很多象我这样的新手不会用而已。      只需要打开IE—工具—Intern...
我们在书写js的过程中,经常会出现一些js错误,对于如果找出错误的解决方法就是关键,下面的文章就是相关的调试方法。 A 使用alert() 和document.write() 方法监视变量值 如果要中断代码的运行,监视变量的值,则使用alert() 方法; 如果需要查看的值很多,则使用document.write() 方法,避免反复单击“确定”按钮; B 使用window.oner...
标签: Java JAVA基础
  前言     凡是有JSP编写经验的人都有JSP调试困难的体会。由于自动化调试工具的缺乏使得在调试JSP时不得不在文件中大量的使用打印语句。这种做法对于定位JSP范围内的错误是一个简单有效的手段,但如何快速有效的定位在JSP中调用的对象的内部错误就显得有点力不从心了。因为这样将不得不频繁地编译、发布、启停服务器,给...
标签: 电脑入门
显卡硬件安装完成只相当于显卡的安装工作完成了一半,驱动程序的安装与设置就是显卡安装的另一半。只有安装完成显卡的驱动程序,显卡的显示核心的所有功能才会启动,显卡才会提供给我们绚丽的画面。 在学习显卡驱动设置之前,我们先来回答两个常见问题: 问:为什么桌面显示正常,但就是不能玩游戏? 答:在Windows中其实会自带一些显卡的驱...
标签: Web开发
JavaScript代码看起来总是要比Java、C#乱的多,可能是自己还不熟悉JavaScript编程,因此一款优秀的JavaScript调试器就显得格外重要。目前在网络和书上见到最多的有: 第一个:Microsoft Script Debugger: 集成在IE中的一款很原始的调试工具,具备基本的调试功能,除了可以用于调试客户端脚本,还能调试在Microsoft IIS上运行的服务器端脚本。...

经验教程

925

收藏

74

精华推荐

Action Script 2.0新手调试

Action Script 2.0新手调试

金山上的穷光蛋

小米usb调试在哪里

小米usb调试在哪里

木小姐

体验流调试的威力

体验流调试的威力

最爱擦擦擦擦擦

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部