2.5 visual studio调试nodeos

2.5.1 前言

       Visual Studio在调试c++程序时,调式信息通是过界面的方式展示出来的,这很方便了我们的开发人员,那么如果只有源代码,而没有把源代码创建成解决方案,比如,linux环境下的C++工程,没有Visual Studio的解决方案工程,那么如何快速的调式这个项目呢?

       Visual Studio提供了打开一个代码文件夹,配置一些详细信息来运行和调试文件夹中的代码。下面将详细介绍如何通过打开文件夹的代码开始调式程序。

 2.5.2 原理介绍

       Visual Studio能够通过打开文件夹的代码开始调式程序,相当于Visual Studio和linux系统之间通过配置信息建立了某些映射关系,通过windows下和linux下的目录使用同一份代码进行调式,将linux系统下调式结果传输到Visual Studio中,展示出来。

打开文件夹进行调试通过 .json 文件来自定义配置信息: 

tasks.vs.json 指定自定义生成命令和编译器开关,以及任意(与非生成相关)任务。 

通过“解决方案资源管理器”右键单击菜单项“配置任务”进行访问。 

launch.vs.json 指定用于调试的命令行参数。 

通过“解决方案资源管理器”右键单击菜单项“调试和启动设置”进行访问。 

这些.json文件位于代码库根文件夹中一个名为.vs的隐藏文件夹中。 当你在“解决方案资源管理器”中的文件或文件夹上选择“配置任务”或“调试和启动设置”时,Visual Studio 会根据需要创建 tasks.vs.json 和 launch.vs.json 文件。

tasks.vs.json

task配置

taskName  : 指定右键单击菜单中显示的名称 

appliesTo : 指定可在其中执行命令的文件 

type    :  指用于调试的代码库的配置文件类型   

launch.vs.json

launch配置

name :  指windows下的代码目录 

cwd : 指linux下的代码目录 

program  : 指linux下的代码编译成功后的执行程序 

MIMode : 指使用gdb方式调式 

remoteMachineName : 远程配置的主机名 

2.5.3 环境准备

在调试之前我们需要以下环境并安装一些软件: 

1.环境:win7及以上版本的操作系统,CentOS或ubuntu等任何一种linux操作系统; 

2.安装软件:windows操作系统上安装VS2015及以上版本;linux系统上安装gcc、g++和gdbserver,ssh-server软件; 

注意: 

在linux系统上安装好ssh软件后,需要启动ssh-server服务,保证调式程序时,能将linux下的调试结果传回到Visual Studio的界面中。 

ssh-server服务的启动命令: 

CentOS系统 : systemctl start sshd 

redhat系统 : service sshd start 

ubuntu系统 : service ssh start   

2.5.4 vs打开文件夹调试程序

我们以vs2017调试eos代码为例: 

1.通过文件夹打开代码,vs界面中选择:文件->打开->文件夹,然后弹出下面的对话框,选择代码的路径;本机windows下的代码在E:\work\eos\source\stable code\eos-v1.6.3\eos中。

代码目录

打开文件夹后,代码工程如下:

代码工程目录

2.配置远程环境,这是我们程序运行的linux环境,需要在配置ssh远程访问,用于将调试结果传回vs界面。

vs界面中选择:工具->选项->跨平台->连接管理器,界面如下图所示:

登录设置

添加ssh远程访问连接配置:点击添加按钮,界面如下:

ssh配置

3.生成配置任务 tasks.vs.json 文件,右键解决方案(eos),弹出如下窗口,选择"配置任务",如下图:

配置任务

tasks.vs.json 文件生成后,不需要修改其中的内容。

任务文件

4.设置“调试”和“启动”的launch.vs.json配置文件,右键解决方案(eos),弹出如下窗口,选择“调试”和“启动”设置,会弹出选择gdb的方式:

调试设置

需要选择远程机器的调试方式,我们选择C/C++ Launch for Linux(gdb) :

选择调试程序

点击选择按钮后,会弹出launch.vs.json文件,需要修改此文件:

原launch.vs.json文件:

原始launch文件

修改后的launch.vs.json文件如下:

修改launch文件

5.json配置文件生成和修改完成后,需要先在linux目录下,把程序编译成功,生成可执行文件,生成的可执行程序路径必须和launch.vs.json文件中program的配置路径程序一致。

然后就可以开始调式程序了,右键解决方案(eos),弹出如下窗口,选择“调试“,程序就开始启动调试了:

启动调试

至此,我们的程序就调试运行起来了,如下图:

程序运行

2.5.5 总结

程序不能正常启动调试的原因: 

1.windows目录下的代码和linux目录下的代码不是同一份,导致启动调试异常。 

2.linux下的程序需要编译成debug版本,否则不能正常启动调试。 

3.launch.vs.json文件中remoteMachineName远程主机配置的不对或者ssh服务没有启动,导致不能正常启动调试。 

4.launch.vs.json文件中program执行程序的路径和执行程序的名称配置不对,导致不能正常启动调试。 

链接

星河公链官网

2.5 visual studio调试nodeos-wx5ca1790914ac4的博客-51CTO博客

2.5 visual studio调试nodeos - arm_snow的博客 - CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335