如何利用Debugview方式來調試MySQLUDF_MySQL
來源:懂視網
責編:小采
時間:2020-11-09 17:22:26
如何利用Debugview方式來調試MySQLUDF_MySQL
如何利用Debugview方式來調試MySQLUDF_MySQL: MySQL的UDF實質就是一個不需要設置入口點的動態連接庫(*Nix稱之為共享庫)。對于DLL的調試可謂個人有個法。現在我介紹一下一個非常簡單的易用的調試方法。這一方法直接利用Windows API,語言無關、開發工具無關、項目類型無關,典型的三無調試方法。并且,
導讀如何利用Debugview方式來調試MySQLUDF_MySQL: MySQL的UDF實質就是一個不需要設置入口點的動態連接庫(*Nix稱之為共享庫)。對于DLL的調試可謂個人有個法。現在我介紹一下一個非常簡單的易用的調試方法。這一方法直接利用Windows API,語言無關、開發工具無關、項目類型無關,典型的三無調試方法。并且,

MySQL的UDF實質就是一個不需要設置入口點的動態連接庫(*Nix稱之為共享庫)。對于DLL的調試可謂個人有個法。現在我介紹一下一個非常簡單的易用的調試方法。這一方法直接利用Windows API,語言無關、開發工具無關、項目類型無關,典型的三無調試方法。并且,我們從這里討論的調試方法支持遠程調試,對于一時無法掌握開發工具原本調試器而又急于尋找程序錯誤的朋友此方法非常實用!
首先我們需要下載接收端,當然有心人也可以自己寫一個。
透過debugview手冊我們可以知道這個工具支持win9x/nt系列,并且支持內核調試!由于其調用的API均只能接收一個char * 類型參數,所以有些時候我們需要利用其他的函數有機組合產生人性可讀提示。
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,利用這種方式調試方法適當并不會造成任何困擾。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
如何利用Debugview方式來調試MySQLUDF_MySQL
如何利用Debugview方式來調試MySQLUDF_MySQL: MySQL的UDF實質就是一個不需要設置入口點的動態連接庫(*Nix稱之為共享庫)。對于DLL的調試可謂個人有個法。現在我介紹一下一個非常簡單的易用的調試方法。這一方法直接利用Windows API,語言無關、開發工具無關、項目類型無關,典型的三無調試方法。并且,