国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL UDF的調試方式 - debugview

2024-07-24 12:54:52
字體:
來源:轉載
供稿:網友

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,利用這種方式調試方法適當并不會造成任何困擾。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸丰县| 永春县| 黎平县| 武邑县| 文水县| 大理市| 闵行区| 龙山县| 西城区| 彰武县| 湖州市| 肥东县| 温州市| 泗阳县| 青铜峡市| 晋州市| 潼关县| 嘉善县| 乌苏市| 商洛市| 鹿泉市| 丰镇市| 宝山区| 海伦市| 改则县| 平安县| 香格里拉县| 南京市| 庐江县| 杭锦旗| 江口县| 嘉黎县| 安康市| 定南县| 彭阳县| 阳城县| 芜湖市| 兴化市| 鸡泽县| 临汾市| 育儿|