首頁 資料庫 mysql教程 MySQL UDF的调试方式 debugview_MySQL

MySQL UDF的调试方式 debugview_MySQL

Jun 01, 2016 pm 01:55 PM
動態

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

修復:Windows 11 的動態更新率不起作用 修復:Windows 11 的動態更新率不起作用 Apr 13, 2023 pm 08:52 PM

您可以透過計算影像每秒更新的次數來衡量螢幕的更新率。 DRR 是 Windows 11 中包含的一項新功能,可幫助您節省電池壽命,同時仍提供更流暢的顯示,但當它無法正常工作時也就不足為奇了。隨著越來越多的製造商宣布計劃停止生產 60Hz 顯示器,具有更高更新率的螢幕預計將變得更加普遍。這將導致更流暢的滾動和更好的遊戲,但它會以減少電池壽命為代價。但是,此 OS 迭代中的動態更新率功能是一個漂亮的附加功能,可以對您的整體體驗產生重大影響。繼續閱讀,我們將討論如果 Windows 11 的動態更新率未

如何在 iPhone 螢幕錄製中隱藏動態島和紅色指示器 如何在 iPhone 螢幕錄製中隱藏動態島和紅色指示器 Apr 13, 2023 am 09:13 AM

在iPhone上,Apple 的螢幕錄製功能會錄製您在螢幕上所做的事情的視頻,如果您想捕捉遊戲玩法、引導他人完成應用程式中的教程、演示錯誤或其他任何事情,這非常有用。在顯示器頂部有凹口的舊款 iPhone 上,該凹口在螢幕錄製中不可見,這是應該的。但在具有 ‌Dynamic Island‌ 切口的較新 iPhone 上,例如 ‌iPhone 14 Pro‌ 和 ‌iPhone 14 Pro‌ Max,‌Dynamic Island‌ 動畫顯示紅色錄製指示器,這導致切口在捕獲的影片中可見。這可能會

將VirtualBox固定磁碟轉換為動態磁碟,反之亦然 將VirtualBox固定磁碟轉換為動態磁碟,反之亦然 Mar 25, 2024 am 09:36 AM

在建立虛擬機器時,系統會要求您選擇磁碟類型,您可以選擇固定磁碟或動態磁碟。如果您選擇了固定磁碟,後來意識到需要動態磁碟,或者相反,該怎麼辦?好!你可以把一種轉換成另一種。在這篇文章中,我們將看到如何將VirtualBox固定磁碟轉換為動態磁碟,反之亦然。動態磁碟是一種虛擬硬碟,它最初具有較小的大小,隨著您在虛擬機器中儲存數據,其大小會相應增長。動態磁碟在節省儲存空間方面非常高效,因為它們只佔用所需的主機儲存空間。然而,隨著磁碟容量的擴展,可能會稍微影響電腦的效能。固定磁碟和動態磁碟是虛擬機器中常用的

如何在 Windows 11 上將動態磁碟轉換為基本磁碟 如何在 Windows 11 上將動態磁碟轉換為基本磁碟 Sep 23, 2023 pm 11:33 PM

如果要在Windows11中將動態磁碟轉換為基本磁碟,則應先建立備份,因為該程序將擦除其中的所有資料。為什麼要在Windows11中將動態磁碟轉換為基本磁碟?根據Microsoft,動態磁碟已從Windows中棄用,不再建議使用。此外,Windows家庭版不支援動態磁碟,因此您將無法存取這些邏輯磁碟機。如果要將更多磁碟合併到更大的磁碟區中,建議使用基本磁碟或儲存空間。在本文中,我們將向您展示如何在Windows11上將動態磁碟轉換為基本磁碟如何在Windows11中將動態磁碟轉換為基本磁碟?在開始

如何在 Windows 11 的桌面和開始功能表上取得動態磁貼 如何在 Windows 11 的桌面和開始功能表上取得動態磁貼 Apr 14, 2023 pm 05:07 PM

想像一下,您正在系統上尋找某些東西,但不確定要開啟或選擇哪個應用程式。這就是動態磁貼功能發揮作用的地方。任何支援的應用程式的動態磁貼都可以添加到桌面或Windows系統的開始功能表上,其磁貼經常變化。 LiveTiles讓應用程式小工具變得活躍起來,非常令人愉悅。不僅是為了它的外觀,甚至是為了方便。假設您在系統上使用whatsapp或facebook應用程序,如果在應用程式圖示上顯示通知數量不是很方便嗎?如果將任何此類受支援的應用程式新增為動態磁貼,則這是可能的。讓我們看看如何在Windows

Windows 10和11如何禁止資料夾和檔案的動態顯示以阻止快速存取? Windows 10和11如何禁止資料夾和檔案的動態顯示以阻止快速存取? May 06, 2023 pm 04:58 PM

微軟在Windows10中引入了快速訪問,並在最近發布的Windows11作業系統中保留了該功能。快速存取取代了檔案總管中的收藏系統。這兩個功能之間的核心區別之一是快速存取在其清單中添加了一個動態元件。有些資料夾永久顯示,而其他資料夾則根據使用情況顯示。固定資料夾顯示有一個大頭針圖標,動態資料夾沒有這樣的圖標。您可以在此處查看我的收藏夾和快速訪問之間的比較,以了解更多詳細資訊。快速存取比收藏夾更強大,但動態資料夾清單為其添加了混亂元素。可能會顯示無用或不應在檔案總管中反白顯示的文件

如何在 Windows 11 上使用動態鎖定 如何在 Windows 11 上使用動態鎖定 Apr 13, 2023 pm 08:31 PM

什麼是 Windows 11 上的動態鎖定?動態鎖定是 Windows 11 的功能,可在連接的藍牙裝置(您的手機或穿戴裝置)超出範圍時鎖定您的電腦。即使您在離開時忘記使用 Windows 鍵 + L 快捷鍵,動態鎖定功能也會自動鎖定您的 PC。 Dynamic Lock 使用任何有藍牙的連接設備,但最好使用電池電量和續航里程充足的設備,例如您的手機。一旦您的裝置在 30 秒內無法觸及,Windows 將自動鎖定螢幕。將藍牙裝置與 Windows 11 配對要讓一切正常運作,您需要先將

如何使用HTML、CSS和jQuery製作一個動態的圖片輪播 如何使用HTML、CSS和jQuery製作一個動態的圖片輪播 Oct 25, 2023 am 10:09 AM

如何使用HTML、CSS和jQuery製作一個動態的圖片輪播在網站設計和開發中,圖片輪播是一個經常使用的功能,用於展示多張圖片或廣告橫幅。透過HTML、CSS和jQuery的結合,我們可以實現一個動態的圖片輪播效果,為網站增加活力和吸引力。本文將介紹如何使用HTML、CSS和jQuery製作一個簡單的動態圖片輪播,並提供具體的程式碼範例。第一步:設定HTML結

See all articles