快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

MYSQL UDF调试方法DEBUGVIEW

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,利用这种方法调试方式适当并不会造成任何困扰。
返回类别: 教程
上一教程: 一个中文转化UNICODE底的函数
下一教程: 更改ACCESS默认的中文输入

您可以阅读与"MYSQL UDF调试方法DEBUGVIEW"相关的教程:
· MYSQL中文模糊检索问题的解决方式
· WINDOWS上的MYSQL UDF开发
· 从MYSQL导入导出大量数据的程序实现方式
· 最简朴MYSQL的使用方式
· MYSQL中的临时表使用方式讲解
    微笑服务 优质保证 索取样品