curl 这个工具你们都很熟悉. 前几天由于要跟踪curl的实现细节, 不得不设法搭建curl的调试工程. 咱们分别在windows visual studio 和 mac 上的 xcode 下搭建调试. 这里记录一些细节,分享出来.html
curl 能够在数十个平台上编译运行.
这是官网地址: http://curl.haxx.sewindows
请在这里下载源码: http://curl.haxx.se/download.htmlxcode
下载解压.ssh
一. Windows 调试:
在 windows 上调试比较简单. 自带工程文件.
直接用 VS2012 打开 \projects\Windows\VC11 里面的 工程文件就能够了。
务必用vs2012 打开。curl
直接 F10 就能够单步 到 main 函数。函数
二. Mac Xcode 调试.
咱们主要说说 xcode 调试.
大概是由于 *nix 上的编译比较方便, 因此都是使用 makefile 编译. 因此没有自带工程文件.工具
所幸的是, 开源项目 cmake 能够根据 makefile 和配置文件逆向生成工程文件. 而更好的消息是 curl 早期是支持 cmake 的. 因此咱们须要修改一下 curl 的配置文件, 并结合 cmake 来逆向生成 它在 xcode 上的工程文件.ui
开工.url
1) 须要先安装cmake调试
下载 cmake 源码, http://www.cmake.org/files/v3.1/cmake-3.1.0-rc1.tar.gz
而后解压, 进去: ./configure && make && make install
一切顺利的话,应该就能成功了。
2) 生成 makefile
第二步, 咱们须要生成curl 的 makefile. 进入curl的源码目录:
./configure --without-libssh2 --with-darwinssl make
说明一下, 咱们这里指定了两个参数, 咱们不须要 curl 支持 ssh, 因此把”–without-libssh2 ” 排除. 并且”–with-darwinssl” 指定使用 mac 上的 ssl 实现, 而不须要 openssl.
这样能够减小出错的可能性, 并且, 咱们就须要 darwinssl.
3) 生成 xcode 工程.
前面几步都没什么特别的, 这一步是关键, 使用 cnamke 逆向生成工程.
在 curl 的源码根目录中, 有一个文件 “CMakeLists.txt” 这个是逆向生成所必须的配置文件. 这是curl 官方提供的, 可是已经很旧了, 年久失修, 不能工做了.
咱们能够先尝试一下:
mkdir -p build/xcode cd build/xcode cmake ../../$CURL -G Xcode
说明一下, 建立一个子目录保存工程. 而后使用命令:
cmake ../../$CURL -G Xcode
来生成工程.
这一步会报大量的错误在”CMakeLists.txt” 中.
请使用附件中这个我修改过的版本代替源码中的版本, 而后再重复执行上面的命令生成.
CMakeLists.txt
工程文件已经生成了.
可是此时打开工程编译不过. 须要先对工程文件作一些修改:
具体请查看下面的命令.
sed -i "" "s/OTHER_LDFLAGS = \"/OTHER_LDFLAGS = \"-framework Cocoa -framework CoreFoundation -framework CoreServices -framework Security -fobjc-link-runtime -framework LDAP/" CURL.xcodeproj/project.pbxproj
在工程中添加了一些 link target. 比较简单. 很少说了.
如今设置一下 调试工程, 就能够调试了.
而后选中 curl 这个target:
欢迎访问个人我的独立博客: http://byNeil.com