VS2017调试muduo网络库

VS2017调试muduo网络库

    • 准备工作
      • 下载muduo源码
      • 配置linux环境
      • VS打开工程
    • 开始调试
    • 待续

准备工作

下载muduo源码

muduo的github地址:https://github.com/chenshuo/muduo
进入release页面下载2.0.0版本的zip文件,然后解压VS2017调试muduo网络库_第1张图片

配置linux环境

  1. 准备自己的linux虚拟机,我自己用的是Ubuntu18.04和VirtualBox
  2. 安装 ssh服务、gcc、cmake、gdbserver 和boost库
    boost库是必须的,不过还有些其他的库供你编译更多的example
sudo apt install openssh-server build-essential cmake gdbserver libboost-dev 
  1. 启用ssh服务要设置当前Ubuntu主机的端口转发,因为Windows无法通过VirtualBox默认的网卡配置来访问Ubuntu主机
    当然你也可以设计桥接网卡来解决这个问题
    VS2017调试muduo网络库_第2张图片
    随意选择windows机器上的一个未使用端口,我选了8888,虚拟机上的端口是22,默认的ssh服务端口

VS打开工程

  1. 通过cmake文件的方式打开工程VS2017调试muduo网络库_第3张图片

  2. 选择cmake这个选项,打开muduo文件夹的cmakelist
    VS2017调试muduo网络库_第4张图片

  3. 打开后VS会自动利用cmake收集信息,报了两个错在这里插入图片描述
    提示我们没有找到boost库,因为现在的默认配置的生成目标是windows系统,
    在工具栏上找到x64-Debug
    在这里插入图片描述
    然后将它更改成linux-Debug
    应该会跳出来一个配置远程连接的窗口
    VS2017调试muduo网络库_第5张图片
    主机名选择127.0.0.1,端口选择8888,即我们在端口转发设置的windows端口(如果你没有设置端口转发的话,直接使用22端口即可),然后输入你的linux虚拟机的账号和密码(root用户需要另外配置sshd_config),最后连接,不出意外的话窗口会关闭
    VS重新利用Ubuntu虚拟机上的cmake来分析项目,不过这时候我出现了一个错误
    VS2017调试muduo网络库_第6张图片
    提示我们cmake不存在,明明安装好了怎么会不存在?在虚拟机上找了一会才发现我的cmake安装路径是/usr/bin/cmake
    所以要更改cmakesettings.json文件的cmakeExcutable的值,改成我们自己的cmake路径
    VS2017调试muduo网络库_第7张图片
    然后再进行cmake的缓存生成
    VS2017调试muduo网络库_第8张图片

开始调试

找到小绿三角选择要调试的example
VS2017调试muduo网络库_第9张图片
我选择的是simple_echo
然后点击调试—>启动(F5)
VS2017调试muduo网络库_第10张图片
这样程序就停留在我设置的断点上了,就可以开始简单的调试了
gdb窗口的第一行是一个报错,但是貌似不影响调试信息的输出
然后单步走进loop循环,在ubuntu上使用netstat命令查看套接字信息
netstat -a | grep 2007
在这里插入图片描述
看到服务器正在监听
用nc命令模拟TCP请求,然后输入123 456
在VS里面单步执行就能看到回显的123 456
VS2017调试muduo网络库_第11张图片

好,这些就是我自己摸索的全部步骤了。
不过这是利用VS2017的跨平台cmake项目,并不是解决方案类型的跨平台项目,我也不知道差距在哪里

待续

你可能感兴趣的:(VS2017调试muduo网络库)