91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL UDF的調試方式 - debugview (轉)

發布時間:2020-08-10 23:05:40 來源:ITPUB博客 閱讀:138 作者:amyz 欄目:MySQL數據庫
MySQL UDF的調試方式 - debugview (轉)[@more@]

Mysql UDF的調試方式

MYSQL的UDF實質就是一個不需要設置入口點的動態連接庫(*Nix稱之為共享庫)。對于DLL的調試可謂個人有個法。現在我介紹一下一個非常簡單的易用的調試方法。這一方法直接利用windows api,語言無關、開發工具無關、項目類型無關,典型的三無調試方法。并且,我們從這里討論的調試方法支持遠程調試,對于一時無法掌握開發工具原本調試器而又急于尋找程序錯誤的朋友此方法非常實用!

首先我們需要下載接收端,當然有心人也可以自己寫一個。在 bugview.shtml">http://www.sysinternals.com/ntw2k/freeware/debugview.shtml 。透過debugview手冊我們可以知道這個工具支持WIN9X/nt系列,并且支持內核調試!由于其調用的API均只能接收一個char * 類型參數,所以有些時候我們需要利用其他的函數有機組合產生人性可讀提示。

為了減少復雜程度簡單的以來自 Delphi.ktop.com.tw/topic.ASP?TOPIC_ID=35166">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,利用這種方式調試方法適當并不會造成任何困擾。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

%d gv
AI

江永县| 玉林市| 昭通市| 马山县| 安宁市| 莎车县| 奉节县| 珲春市| 双峰县| 上虞市| 瑞丽市| 松原市| 秦皇岛市| 锦屏县| 淮南市| 沙田区| 平度市| 阿图什市| 三明市| 长宁区| 合江县| 武山县| 塘沽区| 上思县| 平阴县| 宁安市| 淮滨县| 新建县| 闽侯县| 天镇县| 尉犁县| 万山特区| 浮梁县| 开鲁县| 关岭| 泾源县| 两当县| 綦江县| 宿松县| 大渡口区| 正镶白旗|