GDBC宿命卡对战硬币怎么改硬

8被浏览1,987分享邀请回答{
"shell_cmd": "clang++ -g \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"variants":
"name": "Run",
"shell_cmd": "clang++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && \"${file_path}/${file_base_name}.exe\""
"name": "Run in CMD",
"shell_cmd": "clang++ \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && start cmd /c \"${file_path}/${file_base_name}.exe & pause\""
顺便贴上我的 SublimeGDB 配置文件:{
"workingdir": "${folder:${file}}",
"commandline": "gdb --interpreter=mi ./${file_base_name}.exe"
1添加评论分享收藏感谢收起0添加评论分享收藏感谢收起使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序_Linux编程_Linux公社-Linux系统门户网站
你好,游客
使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
来源:「开发者之魂」部落格&
作者:Linux
在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除错。现在,如果你刚好也很喜欢 Visual Studio,你可以不必改变习惯,用 Visual Studio 写程式、然后远端送到 Linux 上编译、甚至还能接上 gdb 来除错。这个对于开发像是嵌入式系统、或是 IoT 装置的程序等等就可以多多利用 Visual Studio 强大的 IDE 能力。
图: 应该有不少在 Linux 上写程式的开发人员是这么工作的吧?
首先,你必须使用 Visual Studio 2015,你可以使用免费版[1]的 Visual Studio 2015 Community 或是其它更高等级的版本,记得在安装时要勾选 Visual C++ 以及 C++ 跨平台行动开发这两个元件:
图: 安装 Visual C++
然后只要再安装 Visual Studio GDB Debugger 这个扩充套件,就能够在 Visual Studio 的 Visual C++ & 跨平台的项目类型中选择 Makefile Project (GDB) 的项目范本。
图: 在 Visual Studio 中建立 Makefile Project (GDB)
建立项目后,启始画面就会有简单的说明如何连接远端的 GDB 来进行除错,照着做应该就没有什么大问题了。会用到与 SSH 相关的工具可以到 PuTTY 的网站上下载相关的工具。
图: 使用 VS GDB 扩充套件的教学
首先在项目上按右键选择内容,设定侦错的环境,像是远端主机的位址、然后认证用的 pub/private key,还有连接的方式(ssh 或 plink)等等,这里要注意的是连接服务器是使用 RSA 的公私钥的方式进行认证,所以你必须先产生一组 RSA 金钥,然后在 Linux 主机上放好公钥,然后这里设定是用私钥去验证(图中的 .ppk 档桉)。
图: 设定远端主机连线的资讯
然后就是设定在编译程序时要如何把程式上传到目标的 Linux 机器上,然后用机器上的 gcc/g++ 来进行编译,切换到 NMake 的设定页,设定建置指令:
图: 设定如何将程式丢上远端主机并且进行编译
这里我的设定值是:
d:\tools\pscp.exe -i $(PrivateKey) "D:\Temp\Project1\Project1\main.cpp" $(RemoteUserName)@$(RemoteHostName):$(RemoteWorkingDirectory)/main.cpp
$(SecureShellExecutable) $(RemoteUserName)@$(RemoteHostName) -i $(PrivateKey) "cd $(RemoteWorkingDirectory);g++ -g main.cpp -o $(RemoteExecutable)"
这里我是用 pscp 把档案传上 Linux 主机上后,再用 g++ 来进行编译,其它的变数都是前面设定的值,你可以根据你的工具以及档档案所在位置做修改。
接下来你就可以开始撰写程序了,然后就像在 Visual Studio 里写其它程序一样设定中断点,但是执行时选择 Remote GDB 就可以开始进行远端侦错了。
图: 启动远端主机的 gdb 来除错,但结合 Visual Studio 的侦错介面
看起来就好像都是在 Visual Studio 中的除错画面,但是这个代码确实已经送上 Linux 主机进行编译,并且使用 gdb 来进行侦错了!
使用Visual Studio Code开发TypeScript&
Visual Studio Code 简单试用体验&
Visual Studio Code试用体验&
Visual Studio 2010 & Help Library Manager 安装说明
OpenCV 2.3.x/2.4.x在Visual Studio 和Visual Studio 2010配置方法详解
使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio 10目标文件
Visual Studio LightSwitch增加对HTML5和JavaScript的支持
Visual Studio 11:使用 C++ 开发一个最简单的 Metro 应用
Visual Studio 的详细介绍:Visual Studio 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (10/10/:13)
& (03/08/:03)
& (02月16日)
& (04/27/:45)
& (11/07/:29)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款编程,数学,设计
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!&
gdb是的简称。它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug。
在gdb中,你可以通过设置断点(break point)来控制程序运行的进度,并查看断点时的变量和函数调用状况,从而发现可能的问题。在许多IDE中,gdb拥有图形化界面。
这里主要介绍gdb的命令行使用,并以C程序为例。测试使用的计算机是Mac OS系统。
下面的有两个C文件。(并没有bug。我们使用gdb来查看程序运行的细节)
程序的一个为test.c,其中有主程序main()。mean.c程序中定义了mean()函数,并在main()中调用。
#define ARRAYSIZE 4
float mean(float, float);
int main()
float a=4.5;
float b=5.5;
float rlt=0.0;
float array_a[ARRAYSIZE]={1.0, 2.0, 3.0, 4.0};
float array_b[ARRAYSIZE]={4.0, 3.0, 2.0, 1.0};
float array_rlt[ARRAYSIZE];
for(i = 0; i & ARRAYSIZE - 1; i++) {
array_rlt[i] = mean(array_a[i], array_b[i]);
rlt = mean(a, b);
float mean(float a, float b)
return (a + b)/2.0;
使用gcc同时编译上面两个程序。为了使用gdb对进行调试,必须使用-g选项(在编译时生成debugging信息):
$gcc -g -o test test.c mean.c
生成main可执行文件。
(如有必要,使用:
$chmod +x test
来增加用户的执行权限。)
进入gdb,准备调试程序:
进入gdb的互动命令行。
我们可以直接显示某一行的程序,比如查看第9行程序:
(gdb) list 9
将显示以第9行为中心,总共10行的程序。我们实际上编译了两个文件,在没有说明的情况下,默认为主程序文件test.c:
int main()
float a=4.5;
float b=5.5;
float rlt=0.0;
float array_a[ARRAYSIZE]={1.0, 2.0, 3.0, 4.0};
float array_b[ARRAYSIZE]={4.0, 3.0, 2.0, 1.0};
如果要查看mean.c中的内容,需要说明文件名:
(gdb) list mean.c:1
可以具体说明所要列出的程序行的范围:
(gdb) list 5, 15
即显示5-15行的程序。
显示某个函数,比如:
(gdb) list mean
我们可以运行程序:
程序正常结束。
运行程序并没有什么有趣的地方。gdb的主要功能在于能让程序在中途暂停。
断点(break point)是程序执行中的一个位置。在gdb中,当程序运行到该位置时,程序会暂停,我们可以查看此时的程序状况,比如变量的值。
我们可以在程序的某一行设置断点,比如:
(gdb) break 16
将在test.c的第16行设置断点。
你可以查看自己设置的断点:
(gdb) info break
每个断点有一个识别序号。我们可以根据序号删除某个断点:
(gdb) delete 1
也可以删除所有断点:
(gdb) delete breakpoints
设置断点,并使用run运行程序,程序将运行到16行时暂停。gdb显示:
Breakpoint 1, main () at test.c:16
for(i = 0; i & ARRAYSIZE - 1; i++) {
查看断点所在行:
(gdb) list
查看断点处的某个变量值:
(gdb) print a
(gdb) print array_a
查看所有的局部变量:
(gdb) info local
查看此时的栈状态 (反映了函数调用,见):
(gdb) info stack
可以更改变量的值。
(gdb) set var a=0.0
(gdb) set var array_a={0.0, 0.0, 1.0, 1.0}
当程序继续运行时,将使用更改后的值。
如果我们将断点设置在:
(gdb) break mean.c:2
此时栈中有两个a,一个属于main(),一个属于mean()。我们可以用function::variable的方式区分:
(gdb) print mean::a
让程序从断点开始,再多运行一行:
(gdb) step
也可以使用下面命令,从断点恢复运行,直到下一个断点:
(gdb) continue
使用run重新开始运行。
你可以通过gdb的帮助学到更多:
(gdb) help
或者更具体的命令:
(gdb) help info
使用下面命令退出gdb:
(gdb) quit
下面是一个有bug的C程序,demo.c
#include &stdio.h&
struct node {
typedef struct node *PN
int main()
PNode np=NULL;
for (i=0; i&10; i++) {
printf("Hello World!");
printf("%d \n", np-&element);
程序可以成功编译,但运行将返回:
Segmentation fault
可以使用gdb来查找问题。
经提醒: gdb命令可以只输入首字母的缩写,比如c代表continue,b代表break,q代表quit。
阅读(...) 评论()}

我要回帖

更多关于 宿命卡对战硬币怎么得 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信