Rumah pangkalan data tutorial mysql MySQL UDF的调试方式 debugview_MySQL

MySQL UDF的调试方式 debugview_MySQL

Jun 01, 2016 pm 01:55 PM
dinamik

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Betulkan: Kadar penyegaran dinamik Windows 11 tidak berfungsi Betulkan: Kadar penyegaran dinamik Windows 11 tidak berfungsi Apr 13, 2023 pm 08:52 PM

Anda boleh mengukur kadar segar semula skrin dengan mengira bilangan kali imej dikemas kini sesaat. DRR ialah ciri baharu yang disertakan dalam Windows 11 yang membantu anda menjimatkan hayat bateri sambil tetap memberikan paparan yang lebih lancar, tetapi tidak mengejutkan apabila ia tidak berfungsi dengan betul. Skrin dengan kadar penyegaran yang lebih tinggi dijangka menjadi lebih biasa apabila lebih banyak pengeluar mengumumkan rancangan untuk berhenti menghasilkan monitor 60Hz. Ini akan menghasilkan penatalan yang lebih lancar dan permainan yang lebih baik, tetapi ia akan mendatangkan kos hayat bateri yang dikurangkan. Walau bagaimanapun, ciri kadar penyegaran dinamik dalam lelaran OS ini adalah tambahan bagus yang boleh memberi kesan besar pada keseluruhan pengalaman anda. Teruskan membaca semasa kami membincangkan perkara yang perlu dilakukan jika kadar penyegaran dinamik Windows 11 tidak berfungsi

Cara Menyembunyikan Pulau Dinamik dan Penunjuk Merah dalam Rakaman Skrin iPhone Cara Menyembunyikan Pulau Dinamik dan Penunjuk Merah dalam Rakaman Skrin iPhone Apr 13, 2023 am 09:13 AM

Pada iPhone, ciri rakaman skrin Apple merekodkan video tentang perkara yang anda lakukan pada skrin, yang berguna jika anda ingin menangkap permainan, memandu seseorang melalui tutorial dalam apl, menunjukkan pepijat atau apa-apa lagi. Pada iPhone lama yang mempunyai takuk di bahagian atas paparan, takuk tidak kelihatan dalam rakaman skrin, seperti yang sepatutnya. Tetapi pada iPhone yang lebih baharu dengan potongan ‌Dynamic Island‌, seperti ‌iPhone 14 Pro‌ dan ‌iPhone 14 Pro‌ Max, animasi ‌Dynamic Island‌ memaparkan penunjuk rakaman merah, yang menyebabkan potongan itu kelihatan dalam video yang dirakam. ini mungkin

Tukar cakera tetap VirtualBox kepada cakera dinamik dan sebaliknya Tukar cakera tetap VirtualBox kepada cakera dinamik dan sebaliknya Mar 25, 2024 am 09:36 AM

Apabila mencipta mesin maya, anda akan diminta untuk memilih jenis cakera, anda boleh memilih cakera tetap atau cakera dinamik. Bagaimana jika anda memilih cakera tetap dan kemudian menyedari bahawa anda memerlukan cakera dinamik, atau sebaliknya. Anda boleh menukar satu kepada yang lain? Dalam siaran ini, kita akan melihat cara menukar cakera tetap VirtualBox kepada cakera dinamik dan sebaliknya. Cakera dinamik ialah cakera keras maya yang pada mulanya mempunyai saiz kecil dan membesar dalam saiz semasa anda menyimpan data dalam mesin maya. Cakera dinamik sangat cekap dalam menjimatkan ruang storan kerana ia hanya mengambil sebanyak mungkin ruang storan hos seperti yang diperlukan. Walau bagaimanapun, apabila kapasiti cakera berkembang, prestasi komputer anda mungkin terjejas sedikit. Cakera tetap dan cakera dinamik biasanya digunakan dalam mesin maya

Bagaimana untuk menukar cakera dinamik kepada cakera asas pada Windows 11 Bagaimana untuk menukar cakera dinamik kepada cakera asas pada Windows 11 Sep 23, 2023 pm 11:33 PM

Jika anda ingin menukar cakera dinamik kepada cakera asas dalam Windows 11, anda harus membuat sandaran terlebih dahulu kerana proses itu akan memadamkan semua data di dalamnya. Mengapa anda perlu menukar cakera dinamik kepada cakera asas dalam Windows 11? Menurut Microsoft, cakera dinamik telah ditamatkan dari Windows dan penggunaannya tidak lagi disyorkan. Selain itu, Windows Home Edition tidak menyokong cakera dinamik, jadi anda tidak akan dapat mengakses pemacu logik ini. Jika anda ingin menggabungkan lebih banyak cakera kepada volum yang lebih besar, kami mengesyorkan anda menggunakan Cakera Asas atau Ruang Storan. Dalam artikel ini, kami akan menunjukkan kepada anda cara menukar cakera dinamik kepada cakera asas pada Windows 11 Bagaimana untuk menukar cakera dinamik kepada cakera asas dalam Windows 11? pada permulaannya

Cara Mendapatkan Jubin Langsung pada Desktop dan Menu Mula dalam Windows 11 Cara Mendapatkan Jubin Langsung pada Desktop dan Menu Mula dalam Windows 11 Apr 14, 2023 pm 05:07 PM

Bayangkan anda sedang mencari sesuatu pada sistem anda tetapi tidak pasti aplikasi mana yang hendak dibuka atau dipilih. Di sinilah ciri Jubin Langsung dimainkan. Jubin langsung untuk mana-mana aplikasi yang disokong boleh ditambahkan pada desktop atau menu Mula sistem Windows anda, dengan jubinnya sering berubah. LiveTiles menjadikan widget aplikasi menjadi hidup dengan cara yang sangat menggembirakan. Bukan sahaja untuk penampilannya, malah untuk kemudahan. Katakan anda menggunakan aplikasi whatsapp atau facebook pada sistem anda, bukankah lebih senang jika bilangan pemberitahuan dipaparkan pada ikon aplikasi? Ini boleh dilakukan jika mana-mana apl yang disokong sedemikian ditambahkan sebagai jubin langsung. Mari lihat cara melakukannya dalam Windows

Bagaimana untuk melumpuhkan paparan dinamik folder dan fail untuk menghalang akses pantas dalam Windows 10 dan 11? Bagaimana untuk melumpuhkan paparan dinamik folder dan fail untuk menghalang akses pantas dalam Windows 10 dan 11? May 06, 2023 pm 04:58 PM

Microsoft memperkenalkan Akses Pantas dalam Windows 10 dan mengekalkan ciri tersebut dalam sistem pengendalian Windows 11 yang dikeluarkan baru-baru ini. Akses Pantas menggantikan sistem Kegemaran dalam Penjelajah Fail. Salah satu perbezaan teras antara kedua-dua ciri ialah Akses Pantas menambah komponen dinamik pada senarainya. Sesetengah folder muncul secara kekal, manakala yang lain muncul berdasarkan penggunaan. Folder tetap dipaparkan dengan ikon pin, manakala folder dinamik tidak mempunyai ikon sedemikian. Anda boleh melihat perbandingan antara Kegemaran Saya dan Akses Pantas di sini untuk mendapatkan butiran lanjut. Akses Pantas lebih berkuasa daripada Kegemaran, tetapi senarai folder dinamik menambah unsur kekacauan padanya. Fail yang tidak berguna atau tidak sepatutnya diserlahkan dalam File Explorer mungkin dipaparkan

Cara menggunakan Dynamic Lock pada Windows 11 Cara menggunakan Dynamic Lock pada Windows 11 Apr 13, 2023 pm 08:31 PM

Apakah penguncian dinamik pada Windows 11? Dynamic Lock ialah ciri Windows 11 yang mengunci komputer anda apabila peranti Bluetooth yang disambungkan (telefon anda atau boleh pakai) keluar dari julat. Ciri Dynamic Lock mengunci PC anda secara automatik walaupun anda terlupa menggunakan pintasan Windows Key + L semasa berjalan pergi. Dynamic Lock berfungsi dengan mana-mana peranti yang disambungkan dengan Bluetooth, tetapi sebaiknya gunakan peranti yang mempunyai kuasa dan julat bateri yang mencukupi, seperti telefon anda. Setelah peranti anda menjadi tidak boleh diakses selama 30 saat, Windows akan mengunci skrin secara automatik. Gandingkan peranti Bluetooth dengan Windows 11 Untuk semuanya berfungsi dengan baik, anda perlu terlebih dahulu

Bagaimana untuk mencipta karusel imej dinamik menggunakan HTML, CSS dan jQuery Bagaimana untuk mencipta karusel imej dinamik menggunakan HTML, CSS dan jQuery Oct 25, 2023 am 10:09 AM

Cara menggunakan HTML, CSS dan jQuery untuk mencipta karusel imej dinamik Dalam reka bentuk dan pembangunan tapak web, karusel imej ialah fungsi yang kerap digunakan untuk memaparkan berbilang imej atau sepanduk pengiklanan. Melalui gabungan HTML, CSS dan jQuery, kami boleh mencapai kesan karusel imej dinamik, menambahkan daya hidup dan daya tarikan pada tapak web. Artikel ini akan memperkenalkan cara menggunakan HTML, CSS dan jQuery untuk mencipta karusel imej dinamik yang ringkas dan menyediakan contoh kod khusus. Langkah 1: Sediakan persimpangan HTML

See all articles