NetBeans远程调试Linux C++ 11项目

栏目: C++ · 发布时间: 6年前

内容简介:随着c++ 11的普及率越来越高,开发c++ 项目的人也越来越多,可以说c++ 11 给了c++ 这门语言第二次生命,而且据笔者了解,使用c++ 11 新开发的项目大部分是基于linux的,具体原因不多解释。当然c++圈子里面开发工具百花齐放,有人喜欢使用vi作为主力开发工具,有人用eclipse, 有人用visual studio, 也有人喜欢clion, 抛开个人偏好不谈,我们来谈一下远程调试的支持。 说实话,调试体验最好的个人认为是直接SSH连上去GDB调试,但是这样做有一个问题就是修改代码,和跳转

随着c++ 11的普及率越来越高,开发c++ 项目的人也越来越多,可以说c++ 11 给了c++ 这门语言第二次生命,而且据笔者了解,使用c++ 11 新开发的项目大部分是基于 linux 的,具体原因不多解释。当然c++圈子里面开发 工具 百花齐放,有人喜欢使用vi作为主力开发工具,有人用eclipse, 有人用visual studio, 也有人喜欢clion, 抛开个人偏好不谈,我们来谈一下远程调试的支持。 说实话,调试体验最好的个人认为是直接SSH连上去GDB调试,但是这样做有一个问题就是修改代码,和跳转代码不是特别友好,如果需要大量改代码,分析逻辑,同时调试,可能开发体验不是特别好。笔者要介绍的是一种基于NetBeans远程调试Linux c++ 11项目,具体效果如下。其实NetBeans最早是作为 Java 开发工具而出名的,因此很多人没有太注意他其实也可以开发c++项目,而且对makefile/cmake的支持还比较出众。

NetBeans远程调试Linux C++ 11项目

示例代码如下:

#include <stdio.h>

#include <stdlib.h>

/**

* power - Calculate the power of number.

* @param base: Base value.

* @param exponent: Exponent value.

*

* @return base raised to the power exponent.

*/

double power(double base, int exponent)

{   

int result = base;

int i;

if (exponent == 0) {

return 1;

}

for(i = 1; i < exponent; ++i){

result = result * base;

}

return result;

}

int main(int argc, char *argv[])

{

while(1)

{

int a = 0;

}

if (argc < 3){

printf("Usage: %s base exponent \n", argv[0]);

return 1;

}

double base = atof(argv[1]);

int exponent = atoi(argv[2]);

double result = power(base, exponent);

printf("%g ^ %d is %g\n", base, exponent, result);

return 0;

}

cmake_minimum_required (VERSION 2.8)

set(CMAKE_BUILD_TYPE "Debug")

set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")

set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

project (Demo1)

add_executable(Demo main.cc)

但是远程调试是需要设置的,而且网上这方面的资料不是特别多,那么我就把重点的部分和大家分享一下,第一个重点的设置是下图的构建结果,这项必须要要填,NetBeans根据这个去找可执行文件,否则会报如下的错误。

NetBeans远程调试Linux C++ 11项目

NetBeans远程调试Linux C++ 11项目

第二个问题是NetBeans远程attach到进程的时候会报如下到错误 gdb attach fails with ptrace: Operation not permitted, 解决方案如下:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

总结

本位给出了一种基于NetBeans的linux c++ 11 远程调试方案,NetBeans远程调试对makefile和cmake工程都有比较好的支持,亲测可用。使用NetBeans远程调试的另外一个好处是代码跳转比较方便,再也不用配置mingw/cygwin了,因为我们已经可以在Linux文件系统中随意跳转了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++语言的设计和演化

C++语言的设计和演化

[美] Bjarne Stroustrup / 裘宗燕 / 机械工业出版社 / 2002-1 / 48.00元

这本书是C++的设计者关于C++语言的最主要著作之一。作者综合性地论述了C++的历史和发展,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。一起来看看 《C++语言的设计和演化》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具