将内存各方面的数值都改大一点.都什么时代了,默认数值还这么低... -server-Xms256m-Xmx1024m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-Dsun.io.useCanonCaches=false-Djava.net.preferIPv4Stack=true-Djdk.http.auth.tunneling.disabledSchemes="&qu…
环境: ZeroBrane Studio安装在Windows 7上,而要调试的程序运行在CentOS上: 设置: 在windows 7上,打开ZeroBrane Studio,打开需要调试的文件,例如test.lua 然后选择Project -> Start Debugger Server,Output中可以看到Debugger server started at WIN:8172, 然后点击行号后面设置断点. 在CentOS上,需要先安装ZeroBrane Studio,安装成功后设置环境变量…
Windows 程序捕获崩溃异常 生成dump 概述 事情的起因是,有个同事开发的程序,交付的版本程序,会偶尔随机崩溃了. 悲催的是没有输出log,也没有输出dump文件. 我建议他给程序代码加个异常捕获,在崩溃时生成dump,方便找出问题点. 隔了一天之后,短暂交流,发现他没有这个开发经验,我只好披挂上阵了. 开动 查阅MSDN文档,和stackoverlfow.com的相关文章,可知 SetUnhandledExceptionFilter 可以捕获触发系统崩溃的异常 风风火火开始写代码 vo…
1,程序异常崩溃后用windbg辅助调试解决的经验  状况:我的程序调用别人的库做 文件写入工作. 在这一过程中出现异常,程序崩溃. 经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错. 使用windbg绑定程序进程进行调试,可以在发生异常时候,获取函数调用顺序,进而知道在哪个函数出了异常. 由截图可见,在我的程序函数CEncryptionUtils::write_user_certs调用别人的MWHwMan库的SDFP_Close函数中调用另一个人的sdfp_lib库中的SD_Sa…
1.调试c#程序内存泄漏步骤 设置symbol符号路径: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols;d:/你的pdb文件路径  然后保存工作空间 加载dmp文件. 加载sos文件   .load C:\Windows\Microsoft.NET\Framework\v2.0.50727\sos 加载clr .loadby sos clr.load clr 加载堆 !dumpheap –stat 根据堆的大小,判断是哪种…
Intellij IDEA调试功能使用总结 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行.红色箭头悬停的区域是程序的方法调用栈区.在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法…
前言 相信大家接触过不少node代码了,如果你应用的比较初级或者针对你的项目不需要接触过深的node代码,也许你仅仅需要简单的console.log('your variable')就完全满足你的需要了.如果你应用node比较深入,想要调试(debug)之,我想你应该接触过node-inspector,大致用法流程,简单如下—— 1.安装:npm install -g node-inspector 2.启动debug模式(单独命令行): node-debug &(该命令默认8080端口) nod…
概述 对于分布式系统的调试不知道大家有什么好的方法.对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时.今天咱们来了解了解Java远程调试这个牛逼的功能,本文以Intellij IDEA为例讲解怎么使用远程调试.以Thrift入门教程这篇文章中使用的程序作为例子.这个程序由Thrift服务端和客户端组成.描述一下远程调试需要解决的问题: 服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致…
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行.红色箭头悬停的区域是程序的方法调用栈区.在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早. 3.单步调试 3.1 ste…
原文地址:http://blog.csdn.net/starlee/article/details/6630816 在我的那篇<让程序在崩溃时体面的退出之CallStack>中提供了一个在程序崩溃时得到CallStack的方法.可是要想得到CallStack,必须有pdb文件的支持.但是一般情况下,发布出去的程序都是Release版本的,都不会附带pdb文件.那么我们怎么能在程序崩溃的时候找到出错的具体位置呢?这个时候就该Dump文件出场了!Dump文件是进程的内存镜像,可以把程序运行时的状态…
原文地址:http://blog.csdn.net/starlee/article/details/6618849 在我的那篇<让程序在崩溃时体面的退出之Unhandled Exception>中提供了一个捕捉程序崩溃事件的方法,可以添加代码在程序崩溃的时候做出适当的处理.不过,只知道程序在什么时候崩溃,但是不知道为什么崩溃,这对于程序开发者来说没有任何意义.因为如果不知道程序崩溃的原因,就没法去找到代码中的缺陷,当然就没法去修改代码而避免程序的崩溃.        所有调试过代码的开发者都知…
         在我的那篇<让程序在崩溃时体面的退出之CallStack>中提供了一个在程序崩溃时得到CallStack的方法.但是要想得到CallStack,必须有pdb文件的支持.但是普通情况下,公布出去的程序都是Release版本号的,都不会附带pdb文件.那么我们怎么能在程序崩溃的时候找到出错的详细位置呢?这个时候就该Dump文件出场了!Dump文件是进程的内存镜像,能够把程序执行时的状态完整的保存下来.         要想在程序崩溃的时候创建Dump文件,就须要用到DbgHelp…
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃 虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束.并且发送报告,去掉了系统默认的发送报告的对话框. 所以一拍脑袋,想让自己的程序崩溃的体面一点. 自己想了大概的思路,觉得可以用一个进程来监控目标程序.的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩溃的,也可以做额外的操作,但是这样是没办法把默认的发送错误的对话框去掉的. 然后又有人说是不是采用了类似钩…
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃 虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束.并且发送报告,去掉了系统默认的发送报告的对话框. 所以一拍脑袋,想让自己的程序崩溃的体面一点. 自己想了大概的思路,觉得可以用一个进程来监控目标程序.的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩溃的,也可以做额外的操作,但是这样是没办法把默认的发送错误的对话框去掉的. 然后又有人说是不是采用了类似钩…
一.引言 dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草.windows程序产生dump文件和linux程序产生dump文件的方式不一样,linux默认是不让产生core dump文件,只要在用户自己的~/.bash_profile文件中增加 ulimit -S -c unlimited > /dev/null 2>&1 这样程序崩溃就可以产生可调试的core d…
总结 第一步:修改startup.sh 在倒第二行加上export JPDA_ADDRESS=8787 最后一行在start前面加上"   jpda   " 第二步:配置Idea,Remote,修改服务器调试端口号和IP 概述 对于分布式系统的调试不知道大家有什么好的方法.对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时.今天咱们来了解了解Java远程调试这个牛逼的功能,本文以Intellij IDEA为例讲解怎么使用远程调试.以T…
IDEA 远程调试 Hadoop 两大特色:一是采用maven的pom配置:二是直接连接hdfs:9000端口,无须另外在服务端配置参数. 其实内容包含了两种方式:本地与远程调试.这里仅仅只是使用远程的hdfs,相当于在使用远程的数据库,并未调试部署在远程的JAR包程序.这对于开发而言,已经能够满足开发环境的测试了.但是,在其它的帖子上锁看到设置服务端hadoop的启动脚本,并在其中开启jvm的debug接口之类的做法,不知在此是否也要进行设置.如果仅仅只是在本地跑程序看结果,而不需要去debu…
使用BabeLua在cocos2d-x中编辑和调试Lua BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查.自己主动补全.高速搜索,注入宿主程序内对Lua脚本进行调试,设置断点观察变量值.查看堆栈信息等功能. 怎样安装BabeLua 请參考<系列1-BabeLua入门> 设置Cocos2d-x项目 在VS菜单上选择:[lua][Settings]打开设置界面,例如以下图(左上角选中[Lua Folder]) 如上图分别设置: (1)Lua scr…
转自:https://www.cnblogs.com/Bowu/p/4026117.html 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 点击红色箭头指向的小虫子,开始进入调试. IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法f2()中,程序的第11行.红色箭头悬停的区域是程序的方法调用栈区.在这个区域中显示…
上篇(使用c++开发跨平台程序)说到,我不怕造东西,我怕的是造出来的东西,如果出了问题,我却不知道原因.所以调试分析是一个重要的手段. C++调试是一个复杂的活.虽然大部分调试可以通过IDE在开发期间就解决了.但是必然的,还有很多东西需要在生产环境中还原它.分析它,然后解决它.gdb是一个成熟的工具.围绕着它有很多的工具可以选择.不过这么多工具的根本还是命令行模式下的gdb. 废话不多说,现在我就用gdb来分析调试一下吧. 生成dump文件: 在shell中输入命令: ulimit -c unl…
目录 一.gdb基本使用 1. 启动gdb 2. gdb交互式命令 一.gdb基本使用 ​ GDB是一个由GNU开源组织发布的.UNIX/LINUX操作系统下的.基于命令行的.功能强大的程序调试工具. 对于一名Linux下工作的c++程序员,gdb是必不可少的工具: 1. 启动gdb ​ 对于C/C++程序,编译的时候需要加上 -g 参数生成调试信息.如:gcc -g hello.c -o hello 调试可执行程序 $gdb 程序名称 $gdb ./hello # 调试当前目录下名称为hell…
注:本文重要信息使用 *** 屏蔽关键字. 最近国庆前,项目碰到一个很麻烦的问题,这个问题让我们加班到凌晨三点. 大概背景: 客户给了一些 C语言 写的 SDK 库,这些库打包成 .so 文件,然后我们使用 C# 调用这些库,其中有一个函数是回调函数,参数是结构体,结构体的成员是函数,将 C# 的函数赋值给委托,然后存储到这个委托中. C# 调用 C 语言的函数,然后 C 语言执行到一些步骤后, C 语言函数调用 C# 的函数.这个在 ARM64 的机器下,是正常的,例如树莓派,华为的鲲鹏服务器…
怎么调试lua性能 我们的游戏使用的是Cocos2dx-lua 3.9的项目,最近发现我们的游戏.运行比较缓慢.想做一次性能优化了.其实主要分为GPU.CPU的分别优化.GPU部分的优化.网上有很多优化措施.但是CPU因为是每个项目都不一样所以也没有什么特别的通用的优化手段.软件运行的速度毕竟跟你的代码质量是直接挂钩的.常规的Lua优化方式.也就是很多地方在提的公共函数的本地化.比如说`local type = type`这种.不过在后来的调查中发现这种方式对于lua5.1效果比较明显.至于5.…
Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第一IDE后,觉得Linux下的纯命令行开发调试,还是有些不习惯,效率有些低(大神除外).那么能不能用VS来开发调试Linux程序呢,经过各种查找,找到了VisualGDB这个神奇的插件,通过VS+VisualGDB就可以编译调试Linux程序. 下面我们来看一下创建demo的过程吧. 配置虚拟机 V…
使用未付费的苹果开发者账号真机调试 iOS 程序,过几天后程序一打开就会闪退.   解决办法: 删除 Provisioning Profile,重新配置一次. 终极解决办法:花钱购买苹果开发者账号. 参考: https://www.zhihu.com/question/35394772   2016年12月6日 在 Xcode 中是可以看到证书的期限的,1周的时间,如下:  …
IntelliJ IDEA 对于Javaer开发来说还是很nice的,就是第一次用可能配置项有点生疏,这里就记录一下IntelliJ IDEA 配置运行程序. 1. 点击Edit Config... 2.点击Configure...   然后设置本地Tomcat路径 3.点击Deployment,然后点击+按钮,在弹出框里选择启动项.(ps:图中工程名均已打码处理),选中启动项点击弹出框的"OK"按钮.Application context可以设置每次打开的默认路径 4.给你的这次设置…
Gdb调试多进程程序 程序经常使用fork/exec创建多进程程序.多进程程序有自己独立的地址空间,这是多进程调试首要注意的地方.Gdb功能强大,对调试多线程提供很多支持. 方法1:调试多进程最土的办法:attach pid Attach是调试进程的常用办法,只要有可执行程序以及相应PID,即可工作.当然,为方便调试,可以在进程启动后,设定sleep一段时间,如30s,这样即可有充足的时间来attach. 方法2: set follow-fork-mode child + main断点 当设置s…
以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File -> New Project -> 选择“Go” 特别注意: 新建 Go项目时,一定要通过上述方式建立,而不能通过 “直接打开现有文件夹” 的方式建立,因为这种方式建的是 PHP 项目.不然,Go 的智能提示等功能都失效! 第三步:新建 Go 文件 New -> Go File 第四步:运行/…
pdb是python内置的调试工具, 它可以在终端中调试Python程序, 这允许pdb在很多无法安装IDE的服务器上使用. 虽然远程调试使用广泛, 但在必要的时候(比如难以在本地搭建运行环境)pdb仍然是一个便利的选择. 我们可以在python源代码中设置断点: import pdb def func(): for i in range(100): pdb.set_trace() # set breakpoint print(i) 随后执行源文件, pdb.set_trace()会如同一个断点…
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们 所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时 就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,…