NetBeans远程调试Linux c++ 11项目
NetBeans远程调试Linux c++ 11项目
由于好多原因,好久没有写博客了,随着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的支持还比较出众。
示例代码如下:
#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 == ) {
return ;
} for(i = ; i < exponent; ++i){
result = result * base;
} return result;
} int main(int argc, char *argv[])
{
while()
{
int a = ;
}
if (argc < ){
printf("Usage: %s base exponent \n", argv[]);
return ;
}
double base = atof(argv[]);
int exponent = atoi(argv[]);
double result = power(base, exponent);
printf("%g ^ %d is %g\n", base, exponent, result);
return ;
}
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远程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文件系统中随意跳转了。
NetBeans远程调试Linux c++ 11项目的更多相关文章
- 本地远程调试Linux 部署的web 项目
1.在linux tomcat 下面的 bin 目录下增加一个远程调试的命令: declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Dj ...
- 在windows通过visual studio远程调试linux mono程序
本文参考文章 https://github.com/techl/MonoRemoteDebugger 1.通过连接https://github.com/techl/MonoRemoteDebugger ...
- Gdb远程调试Linux内核遇到的Bug
知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cn ...
- 远程调试 ASP.NET MVC 项目
Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...
- Visual Studio 2015中使用gdb远程调试linux程序
VS的debug功能非常强大,相比而言linux上的图形化调试一直不是很好用. 如果可以使用VS来调试linux程序,应该是一件比较愉快的事情. 这在2015中变得可能,因为从2015开始VS支持An ...
- MAC使用IDA PRO远程调试LINUX程序
1 背景 在学习Linux系统上的一些漏洞知识的时候,往往需要进行“实地测试”,但是在Linux系统上进行调试并不太方便,因为LINUX自带的GDB调试工具真的不太人性化,即使有GDBTUI之类的“伪 ...
- idea远程调试linux下的tomcat
要远程调试代码,首先的保障本地的代码和远程tomcat的代码是同一份 首先在本地idea配置一个远程tomcat服务器 host就填写远程主机ip port填写访问的端口(不是调试端口) 然后在Sta ...
- vs + wsl .net core 远程调试 (linux vsdbg)
https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes https://github.com/ ...
- idea14远程调试linux下的tomcat
进入到idea的tomcat的run/debug配置,新建个remote tomcat,然后填写相关信息,如上图(注意远程调试端口). 再选择Startup/Connection,如下图所示: 到此, ...
随机推荐
- Selenium2+python自动化45-18种定位方法(find_elements)
前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑. 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一.十八种定位方法 前八种是大 ...
- HttpSession与JSESSIONID的"盗用"
https://blog.csdn.net/qq1437715969/article/details/75331652
- Ubuntu12.04 LTS 32位 安装ns-2.35
ubuntu12.04lts 32-bit默认采用gcc 4.6和g++4.6,而ns的最新版本ns 2.3.5也采用了相同到版本,所以这方面不会有版本不同到问题 收回上面这句话..../valida ...
- target和currentTarget
event.target返回触发事件的元素 event.currentTarget返回绑定事件的元素 1 <ul id="ul">ul 2 <li>li ...
- vue2.0无限滚动加载数据插件
做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...
- Go语言基础之map
Go语言基础之map Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能 ...
- [LeetCode] Rotated Digits 旋转数字
X is a good number if after rotating each digit individually by 180 degrees, we get a valid number t ...
- if-else案例–开关灯
首先,创建一个html页面,添加一个div盒子,用css设置相应的样式,用js获取盒子的元素,通过点击事件,设置body的背景颜色,用if..else来判断当什么状态设置相应的颜色,(swith... ...
- OO第四次博客作业
测试与正确性论证的效果差异及其优缺点 测试是利用测试代码,通过编写测试用例来验证代码是否能正常完成所要求的功能,自动测试相较于正确性论证来说更加的直观,直接测试代码的功能,而正确性论证是在JSF的基础 ...
- linux --- Ansible篇
ansible背景 1.什么是ansible? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优 ...