dump文件

工作6年,私藏的25个,调优工具/技术网站,我贡献出来了

假如想象 提交于 2020-04-04 18:31:40
工作6年,私藏的25个,调优工具/技术网站,我贡献出来了 对于程序员来说,不停的学习新技术,是我们一直要做的事情,平时不积累,等到金三银四,金九银十的跳槽季节,身边的朋友,一个个的拿着高薪跳槽,自己只能眼巴巴的看着,后悔平时没有积累学习。 其实很多程序员最头疼的事情,就是找学习资料或面试题,我这里,就给大家推荐一些,我赞了6年的优质技术网站,都是我精心挑选的,涵盖:4个算法网站,7个调优排错工具网站,4个问答社区,4个教程网站,4个代码协作平台,都是大家学习IT路上的好帮手,对技术提升有很大帮助,而且都是里免费的! 算法网站 LeetCode https://leetcode.com https://leetcode-cn.com LeetCode: 被称为刷题神器,里面有很编程算法面试的海量题目,可以在线编译运行,难度比较高。如果自己能都做出来,对面试大公司很有帮助。建议一次只针对一种题型进行训练,如数组、链表、二叉树、回溯、动态规划,这样效果会更好。 LintCode https://www.lintcode.com LintCode: 汇集了各大公司的算法面试题,有阶梯式训练题库,帮你选好应该刷的题目,特别适合小白和懒人。评测数独特快,支持中文在线题库,不需要你处理输入和输出,方便了很多,测试速度也很快。 VisuAlgo https://visualgo.net/zh

Segmentation fault(Core Dump)

半世苍凉 提交于 2020-04-04 01:13:44
Segmentation fault 这个提示还是比较常见的,这个提示就是段错误,这是翻译还是十分恰当的。 Core Dump 有的时候给我们呈现的翻译很有趣是”吐核“,但是实际上比较贴切的翻译是核心转储(是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试),这个“吐核”的产生和王安博士有着一些关联,其实“吐核”这个词形容的很恰当,就是核心内存吐出来。 出现这种错误可能的原因(其实就是访问了内存中不应该访问的东西):   1,内存访问越界:     (1) 数组访问越界,因为下标出超出了范围。     (2) 搜索字符串的时候,通过字符串的结尾符号来判断结束,但是实际上没有这个结束符。 (3)使用strcpy, strcat, sprintf, strcmp,strcasecmp等字符串操作函数,超出了字符中定义的可以存储的最大范围。使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函数防止读写越界。   2,多线程程序使用了线程不安全的函数。    3,多线程读写的数据未加锁保护。     对于会被多个线程同时访问的全局数据,应该注意加锁保护,否则很容易造成核心转储   4,非法指针     (1

iOS逆向系列-逆向APP思路

匆匆过客 提交于 2020-04-01 06:38:59
界面分析 通过Cycript、Reveal。 对于Reveal安装配置可参考配置 iOS逆向系列-Reveal 通过Reveal找到内存中的UI对象 静态分析 开发者编写的所有代码最终编译链接到Mach-O文件中。 如果我们要分析App的代码也就是说要分析Mach-O中的代码。静态的代码分析常用的工具MachOView、class-dump、Hopper Disassermbler、ida等。 静态分析 class-dump class-dump作用就是把Mach-O文件的Class信息给dump出来(把类信息给导出来),生成对应的.h头文件。 官方地址: http://stevenygard.com/projects/class-dump/ 下载完工具包后将class-dump文件复制到Mac的/usr/local/bin目录。这样就可以识别class-dump命令了。 Mac的命令存储在/usr/bin与/usr/local/bin中,目前Mac不允许用户向/usr/bin做修改,我们将命令可以添加到/usr/local/bin中。 对Mach-O执行如下命令 class-dump -H Mach-O文件 -o 导出头文件存放的文件目录 class-dump -H 123 -o Headers/ 找到对应的类,通过class-dump到处类的头文件所有的方法

jar包问题

╄→尐↘猪︶ㄣ 提交于 2020-03-26 10:59:23
1.手动导入jar包 通过 cmd命令行执行 mvn install:install-file ,比如安装 ojdbc14-10.2.0.2.0.jar如下; mvn install:install-file -DgroupId=com.Oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2.0 -Dpackaging=jar -Dfile=E: \oracle\ojdbc14-10.2.0.2.0.jar 需要知道groupId、artifactId、version 此处groupId为com.Oracle,artifactId为ojdbc14,version为10.2.0.2.0 2.jar包冲突问题 常见错误:java.lang.NoSuchMethodError 通常,发生了NoSuchMethodError,在报错中我们可以查看到应用真实需要的方法和方法签名,例如如下的报错: java.lang.NoSuchMethodError: com.taobao.eagleeye.EagleEye.rpcClientRecv(Ljava/lang/String;I)V 表明应用需要的是EagleEye类中的包含方法签名如:void rpcClientRecv(String str,int i)的方法。知道了这一点,我就自

让程序在崩溃时输出Dump文件

泄露秘密 提交于 2020-03-23 03:36:54
#include <Windows.h> #include <tchar.h> #include <DbgHelp.h> #include <iostream> #include <vector> // 添加对dbghelp.lib的编译依赖 // #pragma comment(lib, "dbghelp.lib") using namespace std; const int MAX_ADDRESS_LENGTH = 32; const int MAX_NAME_LENGTH = 1024; // 崩溃信息 // struct CrashInfo { CHAR ErrorCode[MAX_ADDRESS_LENGTH]; CHAR Address[MAX_ADDRESS_LENGTH]; CHAR Flags[MAX_ADDRESS_LENGTH]; }; // CallStack信息 // struct CallStackInfo { CHAR ModuleName[MAX_NAME_LENGTH]; CHAR MethodName[MAX_NAME_LENGTH]; CHAR FileName[MAX_NAME_LENGTH]; CHAR LineNumber[MAX_NAME_LENGTH]; }; // 安全拷贝字符串函数 // void SafeStrCpy(char

教你如何提取Window系统蓝屏日志

元气小坏坏 提交于 2020-03-17 03:29:51
用过Window操作系统的用户或者或少都遇到过这张图,我们一般叫做“系统蓝屏”,之所以会出现这种情况,是因为 系统启动失败并且无法自我修复 ,系统就会给用户这样的提示信息; 现在能出现这种情况,可以从以下几个方面进行考虑: 驱动问题 文件系统损坏 硬件不兼容 病毒 出现蓝屏这种情况的原因毕竟千奇百怪,第一次遇到这种情况的开发者,肯定也是一脸懵逼,不知道从何下手,今天就教大家如何进行 蓝屏日志提取 。 步骤一:系统设置 计算机->鼠标右键->点击属性 高级系统设置->(启动和故障恢复)设置 勾选“将事件写入日志系统” 这里多说一句,若我们勾选了“自动重新启动”,当系统启动失败后,系统可以重新启动,如果一直启动失败,系统就会一直重启中。 步骤二:提取dump文件 按照上述步骤设置好系统后,若系统再次蓝屏,系统就会记录蓝屏信息,并生成dump文件;文件一般在系统盘Windows文件夹的Minidump文件夹下,若里面没有,去Windows文件夹看看有没有MEMORY.DMP。找到dump文件后,就可以通过Windbg专业工具进行分析并找出问题原因,如何分析下一文章再继续。 来源: CSDN 作者: Jimmy1224 链接: https://blog.csdn.net/xiao3404/article/details/104884458

又又一款抓dmp工具---ProcDump

核能气质少年 提交于 2020-03-07 09:25:12
简介 ProcDump是一个命令行实用程序,其主要目的是监视应用程序的CPU峰值,并在峰值期间生成崩溃转储,管理员或开发人员可以使用该转储来确定峰值的原因。ProcDump还包括挂起窗口监视(使用与Windows和任务管理器使用的相同的窗口挂起定义)、未处理的异常监视,并且可以基于系统性能计数器的值生成转储。它还可以作为一个通用的进程转储实用程序,可以嵌入到其他脚本中。 使用ProcDump procdump [-a] [[-c|-cl CPU usage] [-u] [-s seconds]] [-n exceeds] [-e [1 [-b]] [-f <filter,...>] [-g] [-h] [-l] [-m|-ml commit usage] [-ma | -mp] [-o] [-p|-pl counter threshold] [-r] [-t] [-d <callback DLL>] [-64] <[-w] <process name or service name or PID> [dump file] | -i <dump file> | -u | -x <dump file> <image file> [arguments] >] [-? [ -e] Parameter Description -a Avoid outage. Requires -r. If

IIS崩溃时自动抓取Dump

╄→尐↘猪︶ㄣ 提交于 2020-03-01 20:38:19
背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1、启动 Windows Error Reporting Service 服务 2、移除默认的调试器 如果你的机器装了VS开发工具,会在注册表里写入调试器地址,需要把它删除。 找到注册表删除以下2个项目 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger 在 64 位 操作系统上也删除以下注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger 3、执行下面注册表脚本,设置w3wp.exe 崩溃时自动抓取dmp文件,保存在D:\dumps文件夹里 Windows

windows程序崩溃生成dump文件

那年仲夏 提交于 2020-03-01 20:34:43
第一种: 通过任务管理器 :这种适用在程序挂了(crash)的时候进程还未退出,比如我运行程序,出现了下面的错: 此时打开任务管理器,右击相应进程,点击"Create Dump File“: 一会创建完成: 然后把这个DMP文件拷到开发机器上,用VS打开: 会出现下面的界面,要想知道发生错误时候的调用栈,需要设置symbol的路径,点击”Set Symbol Paths“: 注意这个pdb要对应于crash的exe,否则调用栈没法显示: 设置完成后,点击”Debug with Native Only“ 你就可以看到调用栈了。 第二种: 改注册表 如果程序crash的时候没有框蹦出来,可以通过改注册表的设置让操作系统在程序crash的时候自动生成dump,并放到特定的目录下 增加注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps 添加项如下图: 其中DumpType代表的含义是: 0 = Create a custom dump 1 = Mini dump 2 = Full dump 来源: https://www.cnblogs.com/hushaojun/p/6388153.html

Jprofile解析dump文件使用详解

ⅰ亾dé卋堺 提交于 2020-02-29 06:36:02
1 Jprofile简介 官网 下载对应的系统版本即可 性能查看工具JProfiler,可用于查看java执行效率,查看线程状态,查看内存占用与内存对象,还可以分析dump日志. 2 功能简介 选择attach to a locally running jvm 选择需要查看运行的jvm,双击或者点击start 等待进度完成,弹出模式选择 Instrumentation模式记录所有的信息。包括方法执行次数等Sampling模式则只支持部分功能,不纪录方法调用次数等,并且更为安全 由于纪录信息很多,java运行会变的比正常执行慢很多,sampling模式则不会 常规使用选择sampling模式即可,当需要调查方法执行次数才需要选择Instrumentation模式,模式切换需要重启jprofiler 点击OK 选择Live Momory可以查看内存中的对象和大小 选择cpu views点击下图框中的按钮来纪录cpu的执行时间 这时候可以在外部对需要录的jvm操作进行记录了,得出的结果可以轻松看出方法执行调用过程与消耗时间比例: 根据cpu截图的信息,可以找到效率低的地方进行处理,如果是Instrumentation模式则在时间位置会显示调用次数 在Thread界面则可以实时查看线程运行状态,黄色的是wait 红色是block 绿色的是runnable蓝色是网络和I/O请求状态