OPENSSL VS环境下源码调试

版本为 openssl-0.9.8x 源码,因为这个库极为庞大复杂,要具体去了解它,单步调试查看是必不可少的。

源码在手,却不能和之前的一些项目样,直接将源码放入到VS IDE环境进行编译,毕竟这不是土生土长的微软的东西。

现在需要在VS 2008进行单步查看和调试,因此需要对openssl进行DEBUG版的编译,网上很多的教程都是编译的Release版本,要编译DEBUG,需要小小的做些改动。


编译步骤:

准备工作,需要有Perl环境以及openssl源码。

1. 先执行VS的CMD命令行,然后进入对应的源码目录,执行 perl configure VC-WIN32



2. ms\do_ms.bat  (如果是想修改成DEBUG版,安装下面步骤可进行修改,否则直接执行即可)

在openssl-0.9.8x找到 ms\do_ms.bat 进行编辑(或者新建一个do_ms_debug.bat文件也可),将ntdll.mak 和 nt.mak 所在行加入 debug 即可。  这个版本的ntdll.mak 和 nt.mak都不用改动,即使改动后,在执行 ms\do_ms.bat都会被重新建立mak文件。

修改前如图:


修改后如图:


进入到 openssl-0.9.8x 根目录,然后执行 ms\do_ms.bat ,会产生对应的nt.mak 和 ntdll.mak ,如果是使用静态库,就编译nt.mak ,动态库是 ntdll.mak。

编译方式是  nmake -f ms\ntdll.mak  or nmake -f ms\nt.mak  

测试库是  nmake -f ms\ntdll.mak test  or nmake -f ms\nt.mak test

安装库文件是  nmake -f ms\ntdll.mak install  or  nmake -f ms\nt.mak install (这个步骤一般不用执行,执行后会在源码所在目录的根路径下新建 E:\usr\local\ssl\ 目录,然后库,头文件都被复制到这里) 如:


清除编译     nmake -f ms\ntdll.mak clean  or  nmake -f ms\nt.mak clean


修改do_ms.bat为debug版后,所对应的nt.mak 或者是 ntdll.mak 发生的改变仅仅是一些 CFLAG ,LFLAGS参数,如CFLAG =  /MTd /Od -DDEBUG -D_DEBUG 。。。

LFLAGS = 。。。 /debug

借鉴于网上的一篇教程,也是单步调试设置的,但我做实验时貌似有些出入,按照其手动修改 nt.mak 和 ntdll.mak 新加入 /Zi ,貌似是没有作用的,因为该文件在执行do_ms.bat后,会被重写。 文章地址为: 点击打开链接


当编译完成后,会在根目录下生成 对应的,如 out32dll  out32dll.dbg  out32.dbg  out32等目录,前两个是动态链接库,后者则是静态库。


3.  打开VS环境,设置一下VC++目录,“工具” -- “选项” -- “项目和解决方案” -- “VC++ 目录”,选择“包含文件”,指定 openssl-0.9.8x的include。“库文件”则指向生成的out32.dbg或者是out32.dll之类的都行,但如果是想跟踪源码,则应该使用out32.dbg。




4. 建立测试项目,如命令行程序,在文件中加入 头文件,库等就可以进入源码调试了,如:


至此,编译及单步调试都已经实现。

如果不是想进行单步调试,则可简单使用已经编译好的openssl库即可,如: Win32OpenSSL-0_9_8x.exe,执行完后就能使用。


参考: 在Windows下编译OpenSSL(VS2005)


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows平台下,使用IntelliJ IDEA编译并调试MySQL源码可以按照以下步骤进行: 1. 安装CMake工具 MySQL源码需要使用CMake工具生成Makefile文件,然后再使用Make命令来编译。在Windows平台下,可以从CMake官网下载CMake安装包进行安装。 2. 下载MySQL源码 可以从MySQL官网下载MySQL源码压缩包。 3. 生成Makefile文件 在MySQL源码目录下,使用CMake工具生成Makefile文件。可以在终端(CMD或PowerShell)中执行以下命令: ``` cmake -G "Visual Studio 16 2019" -A x64 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_UNIT_TESTS=OFF -DWITH_EMBEDDED_SERVER=OFF . ``` 其中,-G参数指定生成的Makefile文件类型,这里使用的是Visual Studio 2019的Makefile文件。-A参数指定构建的目标平台是x64。-DDOWNLOAD_BOOST=1表示需要下载并编译Boost库,-DWITH_BOOST=./boost指定Boost库的路径。-DWITH_SSL=system和-DWITH_ZLIB=system表示使用系统安装的OpenSSL和Zlib库。-DWITH_UNIT_TESTS=OFF表示不编译单元测试代码。-DWITH_EMBEDDED_SERVER=OFF表示不编译嵌入式服务器代码。 执行完命令后,会在MySQL源码目录下生成相应的Makefile文件。 4. 使用Visual Studio编译MySQL源码 使用Visual Studio打开MySQL源码目录下的`mysql.sln`文件,然后编译整个解决方案。编译完成后,会在MySQL源码目录下生成相应的二进制文件。 5. 使用IntelliJ IDEA进行调试 打开IntelliJ IDEA,创建一个新的C++项目,然后将MySQL源码目录下的`sql`目录导入到项目中。在IntelliJ IDEA中配置调试器,并设置断点进行调试。 需要注意的是,由于MySQL是一个大型的项目,编译和调试可能需要较长的时间和较高的机器配置。同时,还需要对MySQL的代码结构和逻辑有一定的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值