`

mysql 在 VS2005上面单步调试

阅读更多
mysql 在 VS2005上面单步调试 收藏
http://www.xianfen.net/Article137.aspx

http://database.ctocio.com.cn/tips/114/8305614.shtml

http://forge.mysql.com/wiki/Building_MySQL_on_Windows

环境准备:
1. 获取MySQL最新源码:当前版本为5.1.45:http://dev.mysql.com/downloads/mysql/ (Windows (x86, 32-bit), ZIP Archive),解压到工作目录,如D:\mysql-5.1.45
2. 安装VS2005,任何版本都可。如果是Express版本,需要再安装Windows SDK, Server 2003 R2 Platform SDK下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
3. 安装CMake(Windows版本),下载地址:http://www.cmake.org/cmake/resources/software.html, 旧版本可能不支持生成VS2005解决方案,推荐用最新版本。
注意:安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
4. 安装GNUWin32 Bison,下载地址为:http://gnuwin32.sourceforge.net/packages/bison.htm, 同样安装路径最好为英文,并且不要有空格。安装后将bin路径添加到系统环境变量。
5. 安装CygWin,下载地址为:http://www.cygwin.com/setup.exe, 选择模块时要选上Perl and Python模块。
注意:如果只编译,不做test,可不安装CygWin.

二. 编译源代码:
1. 源码目录中sql/sql_locale.cc文件包含各地本地化语言,默认用的UTF-8 without BOM编码,编译器不能正确识别,用含有编码转换功能的文本编辑器将其另存为为UTF-8编码格式。

2. 控制台进入MySQL根目录,运行Win\configure.js脚本,脚本的参数为:
WITH_INNOBASE_STORAGE_ENGINE         Enable particular storage engines
WITH_PARTITION_STORAGE_ENGINE
WITH_ARCHIVE_STORAGE_ENGINE
WITH_BLACKHOLE_STORAGE_ENGINE
WITH_EXAMPLE_STORAGE_ENGINE
WITH_FEDERATED_STORAGE_ENGINE
__NT__                             Enable named pipe support
MYSQL_SERVER_SUFFIX=<suffix>        Server suffix, default none
COMPILATION_COMMENT=<comment> Server comment, default "Source distribution"
MYSQL_TCP_PORT=<port>             Server port, default 3306
CYBOZU                            Default character set is UTF8
EMBED_MANIFESTS                  Embed custom manifests into final exes, otherwise VS
default will be used. (Note - This option should only be
used by MySQL AB.)
WITH_EMBEDDED_SERVER            Configure solution to produce libmysqld.dll
and the static mysqlserver.lib

因此,该命令行可以是如下所示。
Cscript win\configure.js WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
运行结果应该与如下结果类似:
Microsoft (R) Windows Script Host Version X.X
Copyright (C) Microsoft Corporation XXXX-XXXX. All rights reserved.

done!

3. 创建VS解决方案,在MySQL源文件Win目录下有一些批处理:
build-vs71.bat VS2003
build-vs8.bat VS2005
build-vs8_x64.bat VS2005,编译出64bit MySQL
build-vs9.bat VS2008
build-vs9_x64.bat VS2008,编译出64bit MySQL
这些批处理内调用的是CMake,可以在命令行敲入CMake,查看CMake支持的VS版本。
这里我们用VS2005,目标运行平台为32bit,所以运行Win\build-vs8.bat。
运行后,在MySQL根目录生成了MySql.sln,用VS2005打开,可以看到有56个项目。

将sql 中的 mysqld.cc 中的函数 test_lc_time_sz()中的

(*loc)->max_month_name_length = max_month_len;
(*loc)->max_day_name_length = max_day_len;
/*
    if ((*loc)->max_month_name_length != max_month_len ||
        (*loc)->max_day_name_length != max_day_len)
    {
      DBUG_PRINT("Wrong max day name(or month name) length for locale:",
                 ("%s", (*loc)->name));
      DBUG_ASSERT(0);
    }
*/

编码总计算错误,先这么改,找到问题再说

在mysqld的属性页设置命令参数为:

--no-defaults --basedir=D:/mysql-5.1.45/sql --datadir=D:/mysql-5.1.45/win/data --character-sets-dir=D:/mysql-5.1.45/sql/share/charsets --log-bin-trust-function-creators --character-set-server=latin1 --language=D:/mysql-5.1.45/sql/share/english --console --loose-innodb_data_file_path=ibdata1:10M:autoextend --local-infile --loose-skip-innodb --key_buffer_size=1M --sort_buffer=256K --max_heap_table_size=1M --ssl-ca=D:/mysql-5.1.45/mysql-test/std_data/cacert.pem --ssl-cert=D:/mysql-5.1.45/mysql-test/std_data/server-cert.pem --ssl-key=D:/mysql-5.1.45/mysql-test/std_data/server-key.pem --gdb --skip-log-bin --core-file --open-files-limit=1024

设置断点,比如查询的总入口是sql\sql_select.cc 中的 handle_select 函数。

编译mysql项目,将会在mysql-5.1.45-beta\client_debug目录下生成mysql.exe。使用“启动新实例”或者“进入单步执行新实例”进行调试。

在新窗口中输入SQL语句,就可以执行了,mysqld就是后台服务器进程是sql\mysqld.cc中的main函数,sql是输入前端,是mysql\mysql.cc中的main函数

测试语句:SELECT VERSION(), CURRENT_DATE;



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/spche/archive/2010/03/25/5416073.aspx
分享到:
评论

相关推荐

    如何用Toad调试存储过程、触发器

    在调试过程中,要确保仔细检查程序逻辑,特别是可能出现错误的区域。同时,要善于利用日志和异常处理来辅助调试。 总之,使用Toad调试存储过程和触发器是一个高效的过程,它提供了直观的用户界面和强大的调试功能。...

    VS2005关于MySQL数据库连接的支持

    在编程过程中,VS2005中的DataSet、DataTable和DataAdapter等对象可以用来填充来自MySQL数据库的数据,并在用户界面中显示。同时,也可以使用Entity Framework这样的ORM(对象关系映射)工具,将数据库操作转化为...

    基于VS2005的C#的MySql数据库连接程序

    在本文中,我们将深入探讨如何使用Visual Studio 2005 (VS2005) 和C#语言来创建一个连接到MySQL数据库的程序。这个程序的目的是展示基本的数据库连接、查询执行以及数据的读取和写入操作。通过学习这个程序,你可以...

    dbForge Studio for MySQL 6.0.315

    mysql开发工具,支持单步调试

    mysql2005中文版

    MySQL 2005中文版是一款广泛应用于数据库管理领域的开源关系型数据库系统,以其高效、稳定和易用性而受到全球用户的青睐。该版本可能是MySQL的一个早期版本,针对中文用户进行了本地化处理,使得界面和文档都以中文...

    mysql-connector-c-noinstall-6.0.2-win32-vs2005.zip

    此版本的 MySQL Connector/C 已经被优化,可以无缝集成到 VS2005 中,使得开发者在创建基于 MySQL 的应用时能够方便地管理和调试代码。 6. **压缩包内容**:"mysql-connector-c-noinstall-6.0.2-win32-vs2005" 这个...

    mysql-connector-c++-noinstall-1.0.5-win32-vs2005.zip

    这个压缩包“mysql-connector-c++-noinstall-1.0.5-win32-vs2005.zip”包含了适用于Windows 32位系统且与Visual Studio 2005兼容的版本。 MySQL Connector/C++的主要功能是为C++开发者提供了一种方便、高效的方式来...

    vs2005连接Mysql

    本篇文章将详细探讨如何在Visual Studio 2005(VS2005)中连接到MySQL数据库,实现数据的存取与操作。 首先,为了在VS2005中连接MySQL,我们需要安装必要的组件。由于VS2005自身并不内置对MySQL的支持,因此我们...

    mysql存储过程调试工具

    在本主题中,我们将深入探讨“MySQL存储过程调试工具”,并了解如何利用这些工具来优化和调试存储过程。 首先,我们关注的核心工具是"Debugger for MySQL"。这是一款专为MySQL设计的存储过程调试工具,它提供了断点...

    VS2005使用MYSQL++需要的mysqlpp.lib

    在这个场景下,我们讨论的是如何在VS2005中使用MYSQL++库来连接和操作MySQL数据库。 首先,"MYSQL++"是C++的一个开源库,专门设计用于与MySQL数据库管理系统进行交互。它提供了一套方便的C++类和函数,使得开发人员...

    Eclipse断点调试mysql

    在Linux环境下使用Eclipse进行MySQL的断点调试是一项高级的开发技能,尤其对于那些深入研究数据库应用逻辑或需要进行性能优化的开发者而言尤为重要。本文将详细介绍如何在Linux下利用Eclipse对MySQL进行断点调试的...

    mysql 在vs2010的windows窗体下的增删改查

    在开发Windows应用程序时,Visual Studio 2010(VS2010)是一个常用的集成开发环境,而MySQL则是一种广泛使用的开源关系型数据库管理系统。本文将深入探讨如何在VS2010的Windows窗体应用程序中实现对MySQL数据库的增...

    mysql-for-visualstudio-1.2.9_mysqlvs_

    MySQL for Visual Studio 1.2.9 是一个专为Visual Studio设计的插件,它为开发者提供了一套集成的工具,使得在Visual Studio环境中开发、管理和部署MySQL数据库变得更加便捷高效。这个插件允许开发者直接在Visual ...

    人事管理系统vc++mysqlserver 2005

    MySQLServer 2005是MySQL数据库管理系统的一个版本,以其开源、免费和高性能的特点,在数据库领域占有一席之地。2005版引入了更多的企业级特性,如事务处理、存储过程、视图等,使得它更适合于开发大型、复杂的企业...

    VS2012连接mysql驱动

    VS2012连接Mysql数据库驱动。解决低版本的添加数据源后在VS2012里找不到。

    mysql for vs1.2.7&connector;/Net6.9.9

    5. **调试支持**:在Visual Studio中可以直接调试存储过程和函数。 **MySQL Connector/Net 6.9.9** MySQL Connector/Net 是MySQL数据库的.NET数据提供程序,用于.NET Framework或.NET Core应用程序。6.9.9版本提供...

    MySQL ODBC 5.1 Driver(Mysql驱动免安装版)

    开发人员在使用MySQL ODBC驱动时,可以利用ODBC的特性进行调试,如设置SQL日志,查看查询执行时间等,帮助优化数据库操作。 8. **应用场景**: MySQL ODBC驱动广泛应用于各种场景,如报表工具(如Crystal Reports...

    Mysql存储过程调试工具

    Mysql存储过程调试工具 破解版,有使用方法介绍

    mysql驱动jar 文件适用MySQL5.7

    MySQL驱动jar文件是Java应用程序与MySQL数据库之间通信的关键组件,主要功能是提供Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,从而操作MySQL数据库。标题提到的...

Global site tag (gtag.js) - Google Analytics