Articles of 转储

如何在Linux上转储.NET核心应用程序

我有一个.NET应用程序,我已经移植到.NET核心。 我正在Ubuntu 14.04上testing它。 我想弄清楚如何得到一个.dmp文件或当程序崩溃的Linux等价物。 我打电话给Environment.FailFast但据我所知,这不会像在Windows上生成.dmp文件一样。 根据这种情况 Environment.FailFast应该创build一个转储,但如果是我找不到它。 另外我已经尝试使用gcore手动创build转储。 这工作,但它需要很长时间来生成转储(我的应用程序不是那么大),我无法得到正确的调用堆栈在gdb之后,因为当我指向我的应用程序的DLL GDB不能识别它。 他在Linux上获得.NET Core应用程序的最佳方式是什么? 谢谢!

GDB不能显示堆栈并显示“#1 0x0000000000000000? ()”

我有一个multithreadingC ++程序,在极less数情况下会死锁。 问题很难重现,我只能在远程机器上重现它。 我想用来解决这个问题的方法是 运行程序 等待死锁 发送中止信号给它来产生核心转储 将转储复制回我的本地机器 使用gdb来debugging它 我在远程机器上没有gdb,无法安装任何东西。 问题是当我正在debugging核心转储(从远程机器上的死锁或正常运行的进程中获得)时,大多数线程的反向跟踪仅显示: (gdb)bt #0 pthread_cond_wait()at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261 #1 0x0000000000000000在? () 我正在使用与“-g -O1”选项编译的静态链接的二进制文件。 当我在本地机器上中止一个相同的二进制文件的进程时,gdb可以从核心转储中提取整个堆栈,并且没有这样的问题(但是我不能再现死锁)。 我的远程机器是SLES,而我的本地机器是Ubuntu的。 任何想法? 编辑: 发现别人有同样的问题,但仍然没有解决scheme: http : //groups.google.com/group/google-coredumper/browse_thread/thread/2ca9bcf9465d1050 (我不使用谷歌Coredumper,但它似乎像谷歌Coredumper失败同样的错误,这表明也许问题是与SLES 11)

Linux:如何debuggingSIGSEGV? 如何跟踪错误来源?

我的Firefox从今天开始崩溃。 我没有改变任何系统或Firefox上的configuration。 我用 strace -ff -o dumpfile.txt firefox 追查问题。 这不是一个很大的帮助。 我在两个生成的过程转储中看到了段错误,但是我怎么能跟踪他们的原因? 运行10秒后崩溃,通过strace生成22MB的数据。 这是输出的一个片段,你可以在其中看到实际的SIGSEGV。 阅读(19,“\ 372”,1)= 1 gettimeofday({1245590019,542231},NULL)= 0 (3,“\ 6 \ 0 [Qmy \ 26 \ 0 \ 3 \ 1 \ 0 \ 0Y \ 0 \ 200 \ 2 \ 0 \ 0 \ 0 \ 0 \ 323 \ 3A \ 0 […]

如何转储二进制文件的一部分

我有二进制,并且想要提取它的一部分,从知道字节string(即FF D8 FF D0),并以已知字节string(AF FF D9)结束, 在过去,我用dd从开始/结束切割二进制文件的一部分,但这个命令似乎不支持我问。 terminal上的什么工具可以做到这一点?

Postgres pg_dump每次都以不同的顺序转储数据库

我正在编写一个PHP脚本(也使用linux bash命令),它将通过执行以下操作来运行testing用例: 我正在使用PostgreSQL数据库(8.4.2)… 1.)创build一个数据库2.)修改数据库3.)存储数据库的数据库转储(pg_dump) 4.)通过执行步骤1)和2)进行回归testing,然后采取另一个数据库转储,并将其与来自步骤3的原始数据库转储进行比较(差异)。) 但是,我发现pg_dump不会总是以相同的方式转储数据库。 它会每次都以不同的顺序丢弃东西。 因此,当我在两个数据库转储上进行比较时,比较将导致两个文件不同,实际上它们是相同的,只是顺序不同而已。 有没有不同的方式可以去做pg_dump? 谢谢!

WinDBG适用于从Visual Studio 2015中保存的转储,但不是任务pipe理器。 显示exception代码“找不到”

我无法使用任务pipe理器(32位或64位)或Process Explorer创build转储文件,以便在WinDBG或Visual Studio 2015中提供有用的结果,而直接从VS编写的转储在两者中都非常出色。 我需要任务pipe理器转储工作,以便我可以分析我的最终用户发送的转储文件。 我已经将问题简化为在VS 2015 C ++中创build的最简单的可能的Win32应用程序,并且故意写入NULL指针以引发exception。 如果我在VS中运行程序并使用Save Dump As,当发生exception时,可以在VS和WinDBG中使用转储文件来查看导致问题的代码。 这是预期的。 但是,如果我在VS之外运行应用程序,那么Windows将显示通常的对话框: “Win32Project.exe已停止工作…debugging/closures程序”。 虽然这个对话框仍然活跃,我去任务pipe理器32位,并select创build转储文件。 但是将这个转储文件加载到VS或者WinDBG中并没有提供有用的信息。 特别是VS显示exception代码为“未find”。 点击“仅使用本地debugging”会导致“应用程序处于中断模式”。 见下文… 我正在运行一个新的Win 10 64位PC。 DMP,PDB和EXE文件在同一个目录下,我已经无休止地尝试了符号目录 加载.DMP文件后的Visual Studio 2015输出: Dump Summary ———— Dump File: Win32Project1 (4).DMP : C:\Users\Rob\AppData\Local\Temp\Win32Project1 (4).DMP Last Write Time: 24/08/2017 16:38:27 Process Name: Win32Project1.exe : C:\Temp\ConsoleAp2\Win32Project2\Debug\Win32Project1.exe Process Architecture: x86 Exception Code: not found Exception […]

原生dll的符号(pdb)不会由于生成后步骤而被加载

我有一个本地发布的DLL是用符号构build的。 有一个后修build的步骤,修改DLL。 后build立步骤做了一些压缩,可能附加一些数据。 该pdb文件仍然有效,但WinDbg和Visual Studio 2008都不会在后构build步骤后加载DLL的符号。 我们需要修改pdb文件或dll中的哪些位以获取WinDbg或Visual Studio加载符号的时间,以便在其中引用我们的发行版dll的转储? 这是重要的文件大小? 校验和还是散列? 时间戳? 修改转储? 或者修改pdb? 在发货之前修改dll? (我们知道pdb是有效的,因为我们可以使用它来手动获取引用释放的dll的转储调用堆栈中的地址的符号名称,这只是* ss中的一个棘手的问题,对于callstack中的每个地址所有的线程。)

安装debugging工具来分析Windows 7上的微型转储

我一直在试图安装“debugging工具”,以试图分析转储文件的服务器崩溃(Windows Server 2008 R2)。 我过去曾经这样做过,但是我找不到如何安装/定位Windows 7的debugging工具。 我读过这篇知识库文章: http : //support.microsoft.com/kb/315263 。 然后我尝试从下面的文章( http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx )下载“Windowsdebugging工具”。 我select了“作为独立组件安装Windowsdebugging工具”,下载并安装了该文件。 它确实安装成功,但我仍然无法find文件。 这对我来说似乎是一个愚蠢的问题,但我找不到任何方式的debugging工具! 我甚至试图下载Windows 7的debugging工具( http://www.microsoft.com/en-us/download/details.aspx?id=8279 ),但又找不到它们! 任何帮助将非常感激

windbg dump命令失败,错误为0x8007012b

一个客户正在试图捕获一个挂起的转储。 他启动了WindDbg并成功地完成了这个过程。 WinDbg显示其标题: Microsoft (R) Windows Debugger Version 6.11.0001.404 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. 并且加载的模块被枚举。 他input一个转储命令: .dump /mc:\problem.dmp 它报告: Creating c:\problem.dmp – mini user dump WriteMemoryFromProcess.Read(0x1f1e000, 0x2000) failed, 0x8007012b Dump creation failed, Win32 error 0n299 "Only part of a ReadProcessMemory or WriteProcessMemory request was completed." 错误0x299是:由于文件系统限制,请求的操作无法完成 任何想法这意味着什么或如何诊断?