首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 Linux 上创建并调试转储文件

这是一篇指导文章,你可以通过克隆示例的应用仓库来跟随学习: git clone https://github.com/hANSIc99/core_dump_example.git 信号如何关联到转储 信号是操作系统和用户应用之间的进程间通讯...检查当前创建核心转储的设置: ulimit -c 如果它输出 unlimited,那么它使用的是(建议的)默认值。...比如说: coredumpctl list 会显示系统中保存的所有可用的转储文件。...这个视图中的堆栈跟踪不是很详细,因为它不包括函数名。然而,使用 coredumpctl debug,你可以简单地用调试器(默认为 GDB)打开转储文件。...5 / 0 结论 了解如何处理转储文件将帮助你找到并修复应用程序中难以重现的随机错误。

3.4K30

Java虚拟机三件套解析

这些工件是: 垃圾收集(GC)日志 线程转储(ThreadDump) 堆转储(HeapDump 在本文中,我将尝试简要解析下这3个关键工件,描述下在什么场景中使用它们,它们的外观如何,如何捕获它们...线程转储(ThreadDump) 1、什么是线程转储? 线程转储是指在某一时间点在应用程序中运行的所有线程的快照。...它包含有关应用程序中每个线程的所有信息,例如:线程状态,线程ID,本机ID,线程名称,堆栈跟踪,优先级等等。 2、线程转储的外观如何?...3、堆转储在什么场景下使用? 堆转储主要用于解决与内存相关的OutOfMemoryError问题。 4、如何生成堆转储?...5、如何理解堆转储? 堆转储文件为二进制格式,并且通常较大。除此之外,它们的格式严重缺乏文档。因此,必须使用堆转储分析工具来分析和理解它们。

43240
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    翻译——N种脱壳安卓恶意软件的方式

    进行前面提到的函数调用时,将另外调用console.log。但是在此之前,让我们快速回顾一下如何在Android模拟器上设置Frida。...如何脱壳呢 动态 hooking:拦截file.delete (Java level),或者拦截unlink syscall (system level) 从内存里dump:用gameguardian来转存内存或者使用自定义工具转储内存...使用Gameguardian来转储内存: 这种方法是“作弊”,有一个称为GameGuardian的工具可用于游戏黑客。您可以使用GameGuardian做很多有趣的事情,但是我们现在仅使用转储机制。...使用自定义工具转储内存: 感谢@theempire_h,我们可以使用C程序转储目标应用程序的内存区域。...Config Class位于a,b or c 或者较新版本的ooooooooooooo{0,2}o中 通过检查类源代码中“ this”关键字的计数,我设法解密了所有版本的anubis。

    7310

    PostgreSQL备份恢复实现

    pg_dumpall对一个集簇中所有的PostgreSQL数据库写出到(转储)一个脚本文件。该脚本文件包含可以用作psql的输入SQL命令来恢复数据库。...它会对集簇中的每个数据库调用pg_dump来完成该工作。pg_dumpall还转储对所有数据库公用的全局对象(pg_dump不保存这些对象),也就是说数据库角色和表空间都会被转储。...-n, --schema=PATTERN 只转储匹配pattern的模式,这会选择模式本身以及它所包含的所有对象。 -s, --schema-only 只转储对象定义(模式),而非数据。...一个目录格式归档能用标准Unix工具操纵,例如一个未压缩归档中的文件可以使用gzip工具压缩。这种格式默认情况下是被压缩的并且也支持并行转储。...还有,在使用tar格式时,表数据项的相对顺序不能在恢复过程中被更改。 -j njobs,–jobs=njobs 通过同时归档njobs个表来运行并行转储。

    5.4K30

    greenplum gpcrondump命令使用

    -b(绕过磁盘空间检查) 绕过磁盘空间检查。默认设置是检查可用磁盘空间。 -B parallel_processes 要进行转储前/转储后验证的并行检查段数。...这将删除db_dumps目录中的所有旧转储目录, 除了当前日期的转储目录。 -C(清理旧目录转储) 在创建之前清除旧目录模式转储文件。...-o(仅清除旧转储文件) 仅清除旧转储文件,但不运行转储。这将删除除当前日期的转储目录之外的最旧的转储目录。其中的所有转储集 目录将被删除。...--oids 在转储数据中包含对象标识符(oid)。 -p(仅限主要部分) 转储所有主要段,这是默认行为。注意:不推荐使用此选项。 -q(无屏幕输出) 以安静模式运行。...(18:15:12到18:15:53)41s,大概181M/s ,包括所有的函数,以及配置文件和用户等信息 2、在备份出的文件可以看出使用时间戳,编译恢复数据使用

    1.9K30

    greenplum gpcrondump命令使用

    -b(绕过磁盘空间检查) 绕过磁盘空间检查。默认设置是检查可用磁盘空间。 -B parallel_processes 要进行转储前/转储后验证的并行检查段数。...这将删除db_dumps目录中的所有旧转储目录, 除了当前日期的转储目录。 -C(清理旧目录转储) 在创建之前清除旧目录模式转储文件。...-o(仅清除旧转储文件) 仅清除旧转储文件,但不运行转储。这将删除除当前日期的转储目录之外的最旧的转储目录。其中的所有转储集 目录将被删除。...--oids 在转储数据中包含对象标识符(oid)。 -p(仅限主要部分) 转储所有主要段,这是默认行为。注意:不推荐使用此选项。 -q(无屏幕输出) 以安静模式运行。...(18:15:12到18:15:53)41s,大概181M/s ,包括所有的函数,以及配置文件和用户等信息 2、在备份出的文件可以看出使用时间戳,编译恢复数据使用

    2K20

    使用 VisualVM 进行性能分析及调优

    Java 转储:JVM 内部生成的格式化后的数据,包括线程信息,类的加载信息以及堆的统计数据。通常也用于检测死锁。 堆转储:JVM 将所有对象的堆内容存储到文件。...功能介绍 下面我们将介绍性能分析的几种常见方式以及如何使用 VisualVM 性能分析工具进行分析。...堆转储的摘要包括转储的文件大小、路径等基本信息,运行的系统环境信息,也可以显示所有的线程信息。 图 18. 堆转储的摘要视图 ?...从类视图可以获得各个类的实例数和占用堆大小数,分析出内存空间的使用情况,找出内存的瓶颈,避免内存的过度使用。 图 19. 堆转储的类视图 ?...最后从内存性能、CPU 性能、快照功能以及转储功能四个方面展开,进一步说明了如何使用 VisualVM 进行性能分析。

    2.3K50

    调试 .NET Core 中的死锁

    你将了解如何使用各种工具来分析问题,例如核心转储、核心转储分析和进程跟踪。...在本教程中,你将: 调查已停止响应的应用 生成核心转储文件 分析转储文件中的进程线程 分析调用堆栈和同步块 诊断并解决死锁 先决条件 本教程使用: .NET Core 3.1 SDK 或更高版本 用于触发场景的示例调试目标...- Web 应用 用于列出进程的 dotnet-trace 收集和分析转储文件的 dotnet-dump 核心转储生成 为了调查应用程序无响应问题,核心转储或内存转储允许你检查其线程的状态以及任何可能存在争用问题的锁定状态...,请使用以下 dotnet-dump analyze 命令打开核心转储。...参数是先前收集的核心转储文件的路径。

    75120

    在射击游戏中防止玩家作弊

    ---- 在射击游戏中防止玩家作弊 前言 本篇继续阅读学习《有趣的二进制:软件安全与逆向分析》,本章是在射击游戏中防止玩家作弊,学习内存转储和如何保护软件不被破解 一、内存转储 借用一个小游戏进行学习内存转储的知识...,然后修改它 简单不断搜索找到并修改即可,如下 这两小节在Cheat Engine(CE)教程中有更多的内容 3、获取内存转储 内存转储”(memory dump):将内存数据保存成文件 打开任务管理器...不过,即便在这样的情况下,只要我们留下了转储文件,也能够通过它来找到出错的原因 用 WinDbg 来分析一下 chap02\guitest2 中的 guitest2.exe 的转储文件 user.dmp...,因此我们再输入 00400000+2404=00402404,这时会显示出调用的函数名称,即 GetProcAddress 在这里插入图片描述 类似的,找出每个函数参数,可以改写反汇编: 004012b7...函数也会调用失败 随后,失败的 GetProcAddress 函数返回了 00000000,于是 call eax 时进程就异常终止了 这两小节就是用内存转储文件来看内容 二、防止软件被别人分析 1、

    75620

    MySQL Shell转储和加载第2部分:基准测试

    mysqldump 由于mysqldump没有内置压缩功能,转储输出已通过管道传递到zstd。 使用mysqldump,转储和加载都是单线程的。...mysqlpump可以在多个线程中转储数据,但仅限于表级别。如果有一个很大的表,它将仅使用1个线程转储。 mysqlpump生成一个类似于的SQL文件,并且加载数据是单线程的。...GB 1,673,892,597行 频繁使用 binary数据类型 所有 合并以上所有数据集 数据集不适合内存 未压缩的TSV大小:410 GB 2,371,268,011行 基准测试结果 是时候显示一些结果了...正如所料,mysqldump与mysqlpump缺乏或受限于并行转储。 对于mysqlpump,所有数据集中只有足够的大表才能提高转储吞吐量。...下一篇博客文章将介绍Shell如何实现这种转储和加载性能。

    1.6K20

    如何分析heapdump文件_heapdump怎么看

    如果某个转储文件中包含了多份 heap dumps, 可在文件名之后加上 # 的方式指定解析哪一个 dump, 如: myfile.hprof#3 示例 jmap转储可以使用如下方式: jmap -dump...如果不知道如何使用,直接输入 jmap, 或者 jmap -h 则可以看到提示信息....OQL有点类似SQL,专门用来查询堆转储。 OQL相关的帮助信息可以在 jhat 命令所提供的服务器页面最底部....如果使用默认端口, 则OQL帮助信息页面为: http://localhost:7000/oqlhelp/ Java生成堆转储的方式有多种: 使用 jmap -dump 选项可以在JVM运行时获取 heap...在比较两个不同的堆转储时很有用. -debug int 设置 debug 级别. 0 表示不输出调试信息。 值越大则表示输出更详细的 debug 信息.

    3K20

    gpcrondump与gpdbrestore命令使用

    Master的备份文件包含用于创建数据库模式的SQL命令。 Segment的数据转储文件包含将数据装载到表中的SQL语句。Segment的转储文件被使用gzip压缩。...-b(绕过磁盘空间检查) 绕过磁盘空间检查。默认设置是检查可用磁盘空间。 -B parallel_processes 要进行转储前/转储后验证的并行检查段数。...这将删除db_dumps目录中的所有旧转储目录, 除了当前日期的转储目录。 -C(清理旧目录转储) 在创建之前清除旧目录模式转储文件。...-o(仅清除旧转储文件) 仅清除旧转储文件,但不运行转储。这将删除除当前日期的转储目录之外的最旧的转储目录。其中的所有转储集 目录将被删除。 --oids 在转储数据中包含对象标识符(oid)。...-p(仅限主要部分) 转储所有主要段,这是默认行为。注意:不推荐使用此选项。 -q(无屏幕输出) 以安静模式运行。命令输出不会显示在屏幕上,但仍会写入日志文件。

    1.7K50

    nginx日志切割的2种方法

    主要参数: daily指定转储周期为每天  weekly指定转储周期为每周  monthly指定转储周期为每月  dateext在文件末尾添加当前日期  compress通过gzip 压缩转储以后的日志...  create mode owner group转储文件,使用指定的文件模式创建新的日志文件  nocreate不建立新的日志文件  delaycompress和 compress 一起使用时,转储的日志文件到下一次转储时才压缩...notifempty如果是空文件的话,不转储  mail address把转储的日志文件发送到指定的E-mail 地址  nomail转储时不发送日志文件  olddir directory转储后的日志文件放入指定的目录...        compress#通过gzip 压缩转储以后的日志         delaycompress#和 compress 一起使用时,转储的日志文件到下一次转储时才压缩         ...3.使用-v或-d参数时,显示log does not need rotating 答:logrotate在对status未记录的文件进行转储时,会在status添加一条该文件的记录,并将操作时间设为当天

    18.9K64

    《探秘程序崩溃:核心转储(Core Dump)分析全攻略》

    那么,如何获取核心转储文件呢?不同的操作系统有着不同的设置和操作方式。在 Linux 系统中,通常可以通过调整系统资源限制(如使用 ulimit 命令)来允许程序生成核心转储文件。...而在 Windows 系统中,也有相应的调试工具和设置来捕获类似的崩溃信息,如使用 Windows 调试工具(WinDbg)配合相关的配置来生成崩溃转储文件(.dmp 文件)。...通过加载核心转储文件到 GDB 中,我们可以查看程序崩溃时的函数调用栈信息。调用栈就像是程序执行的路线图,它清晰地展示了在崩溃瞬间各个函数的调用顺序。...例如,如果发现调用栈中某个函数涉及到大量的指针操作,那么很可能是指针出现了问题,如空指针引用或者指针越界。除了函数调用栈,核心转储文件还包含了程序崩溃时的内存信息。...如内存泄漏导致的崩溃,可能在核心转储中表现为内存使用量不断增长,最终耗尽系统资源。而数组越界错误,可能会导致相邻内存区域的数据被破坏,在分析内存数据时可以发现这种异常。

    20400

    从零开始学PostgreSQL (六): 备份和恢复

    SQL 转储 SQL 转储 是一种逻辑备份方法,使用 pg_dump 和 pg_dumpall 工具将数据库或整个集群的状态导出为 SQL 语句流。这种方法非常适合小型到中型数据库,易于迁移和恢复。...恢复转储 使用 pg_restore 命令可以从 SQL 转储文件中恢复数据库,可以选择性地恢复特定的表、模式或数据序列。 1.2....你可以使用createdb命令创建数据库,特别是使用template0作为模板,以确保干净的状态: createdb -T template0 dbname 3、用户权限: 所有在转储数据库中拥有对象或被授予对象权限的用户都必须存在于目标系统上...: pg_dump生成的转储是相对于template0数据库的,这意味着所有依赖项,如语言和函数,也会被转储。...6、文件系统备份与SQL转储比较: 文件系统备份通常比SQL转储大,因为它们包含了所有数据文件,而pg_dump只转储创建对象的SQL语句和必要的数据。 3.

    42110

    MySQL Shell转储和加载第4部分:转储实例和模式

    ())执行逻辑转储。...这些工具相对于mysqldump实用程序提供了重大的性能改进,我们的一些基准测试显示吞吐量高达3GB / s!让我们看看如何实现这一目标。...这是有关MySQL Shell Dump&Load的博客文章系列的第4部分 并行化 转储过程使用多个线程来执行任务(可以使用threads选项指定线程数),从而允许并行执行耗时的操作。...每个线程都开启自己与目标服务器的连接,可以进行转储数据,转储DDL或将表数据拆分为大块的工作。 当consistent选项设置为true(默认值)时,转储将保持一致(转储的表使用InnoDB引擎)。...启动转储过程时,全局Shell会话将使用 FLUSH TABLES WITH READ LOCK 设置全局读取锁,接下来,所有线程都与服务器建立连接并使用以下命令开始事务: SET SESSION TRANSACTION

    91030

    技巧|高效使用 JavaScript 闭包——避免 Node.js 应用程序中的内存泄漏

    此信息可在设计 JavaScript 应用程序时帮助您深入了解这些用例如何影响内存使用,从而避免应用程序中的内存泄漏。...在此屏幕截图中,将会对比触发计时器之前和之后获取的 堆转储: ? #New 列显示了在转储之间添加的新对象,#Deleted 列显示了在转储之间收集的对象。...突出显示的部分显示,CustomObject 存在于第一个转储中,但已被收集且未包含在第二个转储中,因此释放了 12 字节内存。...设计实现此模式的函数时,请确保在触发回调时清除了对回调函数的所有引用。这样,即可确保满足使用您的函数的应用程序的内存保留预期。...下面这个来自堆转储的屏幕截图(在将 data 设置为 null 后获取)表明可以通过手动废弃对保留的数据执行垃圾收集: ? 突出显示的行表明,缓冲区已被收集,它的关联内存已被释放。

    2K20
    领券