`

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
分享到:
评论

相关推荐

    MySql+vs2005实例

    通过以上步骤,你可以在 VS2005 中创建一个简单的 MySQL 应用程序,实现数据的增删查改操作。这个实例可能只是一个基础的演示,实际项目中还需要考虑更多因素,如性能优化、事务处理、安全性等。在实践中不断学习和...

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

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

    dbForge Studio for MySQL 6.0.315

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

    MySQl 调试工具

    MySQL调试工具是数据库管理员和开发人员的得力助手,它使得在MySQL环境中定位和解决代码问题变得更加简单和高效。在数据库应用开发过程中,错误和异常是难以避免的,而一个有效的调试工具能够帮助我们理解查询执行的...

    vs2005链接MySQL

    标题“vs2005链接MySQL”涉及到的是在Visual Studio 2005(简称VS2005)环境下,使用C#编程语言构建一个基于B/S(Browser/Server,浏览器/服务器)架构的应用程序,并集成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-for-visualstudio-1.2.6.msi 官方下载原版

    5. **调试支持**:对于存储过程和函数,插件提供了调试功能,可以在Visual Studio中设置断点,检查变量值,进行单步调试。 6. **项目集成**:在Visual Studio的解决方案资源管理器中,可以直接添加和管理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 ...

    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...

    java连接Mysql5.0驱动与实例(调试成功)

    Java连接MySQL 5.0是Java开发者经常遇到的任务,它涉及到Java数据库连接(JDBC)技术。本资源包提供了一个调试成功的...通过实际运行和调试这些代码,你可以更好地理解JDBC的工作原理,并学会在自己的项目中使用它们。

Global site tag (gtag.js) - Google Analytics