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文件系统中随意跳转了。


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

查看所有标签

猜你喜欢:

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

Java常用算法手册

Java常用算法手册

2012-5 / 59.00元

《Java常用算法手册》分三篇,共13章,分别介绍了算法基础、算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着,详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏、密码学等领域中的应用;最后,列举了算法的一些常见面试题。书中知识点覆盖全面,结构安排紧凑,讲解详细,实例丰富。全书对每一个知识点都给出了相应的算法及应用实例,虽然这些例子都是以Java语言来编......一起来看看 《Java常用算法手册》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器