ホームページ データベース 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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

修正: Windows 11 の動的リフレッシュ レートが機能しない 修正: Windows 11 の動的リフレッシュ レートが機能しない Apr 13, 2023 pm 08:52 PM

1 秒あたりの画像の更新回数をカウントすることで、画面のリフレッシュ レートを測定できます。 DRR は Windows 11 に含まれる新機能で、スムーズな表示を提供しながらバッテリー寿命を節約するのに役立ちますが、適切に動作しないことがあっても不思議ではありません。より多くのメーカーが 60Hz モニターの生産を中止する計画を発表するため、より高いリフレッシュ レートの画面がより一般的になることが予想されます。これにより、スクロールがスムーズになり、ゲームの質も向上しますが、その代償としてバッテリー寿命が短くなります。ただし、この OS の動的リフレッシュ レート機能は、全体的なエクスペリエンスに大きな影響を与える可能性がある気の利いた追加機能です。 Windows 11 の動的リフレッシュ レートが機能しない場合の対処法について説明しますので、読み続けてください。

iPhone画面録画でダイナミックアイランドと赤いインジケーターを非表示にする方法 iPhone画面録画でダイナミックアイランドと赤いインジケーターを非表示にする方法 Apr 13, 2023 am 09:13 AM

iPhone では、Apple の画面録画機能が画面上で行っていることのビデオを録画します。これは、ゲームプレイをキャプチャしたり、アプリのチュートリアルを誰かに説明したり、バグをデモしたりする場合に便利です。ディスプレイの上部にノッチのある古い iPhone では、画面録画ではノッチが表示されるはずですが、表示されません。ただし、「iPhone 14 Pro」や「iPhone 14 Pro」Max など、「ダイナミック アイランド」のカットアウトを備えた新しい iPhone では、「ダイナミック アイランド」のアニメーションに赤い録画インジケーターが表示され、キャプチャされたビデオにカットアウトが表示されます。これはもしかしたら

VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換します VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換します Mar 25, 2024 am 09:36 AM

仮想マシンを作成するときに、ディスクの種類を選択するように求められます。固定ディスクまたはダイナミック ディスクを選択できます。固定ディスクを選択した後でダイナミック ディスクが必要であることに気付いた場合、またはその逆の場合はどうすればよいでしょうか? いいですね!一方をもう一方に変換できます。この記事では、VirtualBox 固定ディスクをダイナミック ディスクに、またはその逆に変換する方法を説明します。ダイナミック ディスクは、最初は小さいサイズですが、仮想マシンにデータを保存するにつれてサイズが大きくなる仮想ハード ディスクです。ダイナミック ディスクは、必要なだけのホスト ストレージ スペースのみを使用するため、ストレージ スペースを節約するのに非常に効率的です。ただし、ディスク容量が増加すると、コンピュータのパフォーマンスがわずかに影響を受ける可能性があります。仮想マシンでは固定ディスクとダイナミック ディスクが一般的に使用されます

Windows 11でダイナミックディスクをベーシックディスクに変換する方法 Windows 11でダイナミックディスクをベーシックディスクに変換する方法 Sep 23, 2023 pm 11:33 PM

Windows 11 でダイナミック ディスクをベーシック ディスクに変換する場合は、プロセスによってその中のすべてのデータが消去されるため、最初にバックアップを作成する必要があります。 Windows 11 でダイナミック ディスクをベーシック ディスクに変換する必要があるのはなぜですか? Microsoft によると、ダイナミック ディスクは Windows から廃止され、その使用は推奨されなくなりました。さらに、Windows Home Edition はダイナミック ディスクをサポートしていないため、これらの論理ドライブにアクセスできません。より多くのディスクを結合してより大きなボリュームを作成する場合は、ベーシック ディスクまたは記憶域スペースを使用することをお勧めします。この記事では、Windows 11 でダイナミック ディスクをベーシック ディスクに変換する方法を説明します。 Windows 11 でダイナミック ディスクをベーシック ディスクに変換するにはどうすればよいですか?初めに

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

Microsoft は Windows 10 でクイック アクセスを導入し、最近リリースされた Windows 11 オペレーティング システムでもその機能を維持しました。クイック アクセスは、ファイル エクスプローラーのお気に入りシステムを置き換えます。 2 つの機能の主な違いの 1 つは、クイック アクセスがリストに動的コンポーネントを追加することです。永続的に表示されるフォルダーもあれば、使用状況に基づいて表示されるフォルダーもあります。固定フォルダーにはピン アイコンが表示されますが、動的フォルダーにはそのようなアイコンがありません。詳細については、ここで「お気に入り」と「クイック アクセス」の比較をご覧ください。クイック アクセスはお気に入りよりも強力ですが、動的なフォルダー リストにより乱雑な要素が追加されます。役に立たないファイル、またはエクスプローラーで強調表示すべきでないファイルが表示される場合がある

Windows 11で動的ロックを使用する方法 Windows 11で動的ロックを使用する方法 Apr 13, 2023 pm 08:31 PM

Windows 11 の動的ロックとは何ですか?ダイナミック ロックは、接続されている Bluetooth デバイス (携帯電話またはウェアラブル) が通信範囲外になったときにコンピューターをロックする Windows 11 の機能です。ダイナミック ロック機能は、立ち去るときに Windows キー + L ショートカットを使用するのを忘れた場合でも、PC を自動的にロックします。ダイナミック ロックは、Bluetooth を備えたあらゆる接続デバイスで動作しますが、携帯電話など、十分なバッテリー電力と通信範囲を備えたデバイスを使用するのが最善です。デバイスが 30 秒間アクセスできなくなると、Windows は自動的に画面をロックします。 Bluetooth デバイスを Windows 11 とペアリングする すべてが正しく動作するには、まず次のことを行う必要があります。

HTML、CSS、jQuery を使用して動的な画像カルーセルを作成する方法 HTML、CSS、jQuery を使用して動的な画像カルーセルを作成する方法 Oct 25, 2023 am 10:09 AM

HTML、CSS、jQuery を使用して動的な画像カルーセルを作成する方法 Web サイトのデザインや開発において、画像カルーセルは複数の画像や広告バナーを表示するために頻繁に使用される機能です。 HTML、CSS、jQuery を組み合わせることで、動的な画像カルーセル効果を実現し、Web サイトに活気と魅力を加えることができます。この記事では、HTML、CSS、jQuery を使用して簡単な動的画像カルーセルを作成する方法と、具体的なコード例を紹介します。ステップ 1: HTML ジャンクションを設定する

See all articles