DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  异常诊断与调试

上一页 1 2 3 4 5 6 ··· 10 下一页

摘要:目录 1.首先编写python调用C++的demo 2.gdb调试python程序 3.全速运行程序 4.查看堆栈信息 当我们用Python调用C++的库,并且C++库中存在段错误崩溃时,首先想到的还是用gdb进行调试,具体使用方法如下: 使用该方法的前提是编译C++库的时候要加上-g选项,使编译出 阅读全文
posted @ 2023-01-30 17:56 DoubleLi 阅读(404) 评论(0) 推荐(0) 编辑

摘要:python卡死了怎么办? 一般的python程序卡死,可以用pycharm debug。但是有时候是python和c/c++库混合开发,比如pyqt或者boost python程序卡死,就非常难查。以前都是二分法注释代码查找问题,异常低效。 于是我尝试了vs2017的新功能:python & c+ 阅读全文
posted @ 2023-01-29 16:07 DoubleLi 阅读(184) 评论(0) 推荐(0) 编辑

摘要:说明: 当我们的python程序的一些函数的后端实现为C++时(比如Pytorch, TensorFlow或tvm等)可以使用当前方法调试。有两种方式可以安装调试环境: 一. 搭建环境 有两种方式搭建环境,第一种是用apt安装dbg包,第二种方式是编译python源码。 1.1 安装python的d 阅读全文
posted @ 2023-01-29 16:00 DoubleLi 阅读(75) 评论(0) 推荐(0) 编辑

摘要:参考嵌入式gdb+gdbserver调试环境搭建与使用 参考嵌入式VSCode+gdbserver图形化调试环境搭建与使用 参考VS Code + gdbserver 嵌入式arm远程调试 参考step by step 使用gdb调试Linux平台应用程序 一、软件准备 交叉编译软件gcc-lina 阅读全文
posted @ 2022-12-12 11:51 DoubleLi 阅读(310) 评论(0) 推荐(0) 编辑

摘要:目录标题 引言 环境 步骤 vscode remote ssh 配置 Linux编译机配置 设备板端配置 vscode launch设置 调试 引言 之前说了,通过core dump找程序bug,但是有些时候排查问题的还是不够高效,命令行形式gdb还是太简陋了,在IDE debug代码打断点,查堆栈 阅读全文
posted @ 2022-12-12 11:42 DoubleLi 阅读(468) 评论(0) 推荐(0) 编辑

摘要:嵌入式Linux的GDB调试环境由Host和Target两部分组成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。 一、编译安装gdb+gdbserver 首先下载gdb源码,我下载的是g 阅读全文
posted @ 2022-06-13 15:04 DoubleLi 阅读(1457) 评论(0) 推荐(0) 编辑

摘要:1、调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer。在应用程序调试的时候,pc机上的gdb向开发板上的GDBServer发出命令,而开发板上的gdbserver就会向应用程序发出信号,使应用程序停下来或者完成 阅读全文
posted @ 2022-06-13 15:02 DoubleLi 阅读(273) 评论(0) 推荐(0) 编辑

摘要:众所周知,linux下进程当收到某些信号而终止时,会保存进程上下文信息进入coredump文件中;以帮助程序员们分析调试。它可以通过执行如下命令使能coredump生成。其生成路径定义在/proc/sys/kernel/core_pattern文件中,生成文件名格式定义在内核源码的Documenta 阅读全文
posted @ 2021-12-02 15:31 DoubleLi 阅读(249) 评论(0) 推荐(0) 编辑

摘要:什么是core dump? Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个二进制文件里。 设置core dump文件大小,默认0,即不会生成core文 阅读全文
posted @ 2021-05-10 18:04 DoubleLi 阅读(1055) 评论(0) 推荐(0) 编辑

摘要:文章目录 1、使用windbg中的umdh检查 1.1、 工具下载 1.2、环境配置 1.3、利用工具umdh(user-mode dump heap)分析 1.4、利用umdh创建heap快照 2、使用windbg中的htrace检查 2.1、准备工作 2.2、快照 2.3 、执行操作,比较差异 阅读全文
posted @ 2021-02-06 15:48 DoubleLi 阅读(916) 评论(0) 推荐(0) 编辑

摘要:想要知道程序从开始到运行一段时间内存的使用情况,可以使用gflags工具。 1. windbg同级目录下有gflags.exe,点开后进行如下设置。 2. 在gflags.exe的目录下直接打开命令窗口 输入gflags /i myTest.exe +ust set _NT_SYMBOL_PATH= 阅读全文
posted @ 2021-02-06 15:44 DoubleLi 阅读(786) 评论(0) 推荐(1) 编辑

摘要:内存泄漏 1、方法一:批处理 umdh 原理:借助winDBG 工具,先设置好pdb路径,然后加入进程,运行进程,抓取第一次快照(Snap1.log );运行一段时间(让内存增长),然后执行内存泄漏检测分析.bat,抓取第二次快照(Snap2.log)。最终,比较两次快照结果存到result.txt 阅读全文
posted @ 2021-02-06 15:41 DoubleLi 阅读(2511) 评论(0) 推荐(0) 编辑

摘要:在大型项目中,内存泄露并不会立即crash,会使系统性能不断下降,甚至因内存耗尽而崩溃。排查起来难度也比较大,申请内存的地方很多。这里介绍的这种方法可以迅速定位问题。 下面的程序crash64,每秒会申请1M的内存,而一直都没有释放,产生内存泄露 windbg 中有个小工具 UMDH可以追踪系统每个 阅读全文
posted @ 2021-02-06 15:37 DoubleLi 阅读(415) 评论(0) 推荐(0) 编辑

摘要:本篇文章参考链接: http://bbs.pediy.com/showthread.php?t=107893 ,作者:dnapcex。 windbg安装文件链接:下载地址 最近在查找内存泄露时又偶遇windbg,依然碰到当时纠结的符号表问题。之前公司不能上外网,符号表问题实在不好弄,当时驱动算是做完 阅读全文
posted @ 2021-02-06 15:27 DoubleLi 阅读(144) 评论(0) 推荐(0) 编辑

摘要:在使用WPA分析性能的时候,发现一款轻量级的内存泄露分析工具UMDH(User-Mode Dump Heap),现在研究实践如何使用该工具进行内存泄露分析 Umdh 是 Debugging Tools for Windows 里面的一个工具,主要通过分析比较进程的Heap Stack trace信息 阅读全文
posted @ 2021-02-06 15:24 DoubleLi 阅读(539) 评论(0) 推荐(0) 编辑

摘要:A.利用工具umdh(user-mode dump heap)分析:此处以程序MemoryLeak.exe为例子 1、开启cmd 键入要定位内存泄露的程序gflags.exe /i memroyleak.exe +ust,如图成功后,开启memoryleak.exe程序。 2、利用UMDH创建Hea 阅读全文
posted @ 2021-02-06 15:20 DoubleLi 阅读(360) 评论(0) 推荐(0) 编辑

摘要:缘起: 作为C++程序员,检测内存泄漏是非常痛苦的事情。尤其是看着程序的内存在一直增长,你却无能为力。此时,windbg可以用来检测内存泄漏。 配置windbg: 配置symbol文件路径: “SRV*d:\symbols*http://msdl.microsoft.com/download/sym 阅读全文
posted @ 2021-02-06 15:13 DoubleLi 阅读(1171) 评论(0) 推荐(0) 编辑

摘要:一、简介 生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDbg 如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump 文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。 本文主要介绍了调试工具 WinDbg 和抓包工具 ProcDu 阅读全文
posted @ 2021-02-06 14:53 DoubleLi 阅读(328) 评论(0) 推荐(0) 编辑

摘要:1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件; SetUnhandledExceptionFilter:https://msdn.microsoft.com/query 阅读全文
posted @ 2021-02-06 14:48 DoubleLi 阅读(407) 评论(0) 推荐(0) 编辑

摘要:UnhandledExceptionFilter 函数调用时没有异常处理程序定义来处理引发的异常。 函数通常将异常传递达 Ntdll.dll 文件这将捕捉并试图处理它。 在该进程的内存快照存在某些情况下,您可以看到到一个线程持有锁点的线程调用的 UnhandledExceptionFilter 函数 阅读全文
posted @ 2021-02-06 14:41 DoubleLi 阅读(756) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 10 下一页