首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VC++ 崩溃处理以及打印调用堆栈

    title: VC++ 崩溃处理以及打印调用堆栈 tags: [VC++, 结构化异常处理, 崩溃日志记录] date: 2018-08-28 20:59:54 categories: windows...高级编程 keywords: VC++, 结构化异常处理SEH, 崩溃日志记录 --- 我们在程序发布后总会面临崩溃的情况,这个时候一般很难重现或者很难定位到程序崩溃的位置,之前有方法在程序崩溃的时候记录...,以及解析发生异常时的相关信息。...在获取模块的信息时主要提供了两种方式,一种是使用CreateToolhelp32Snapshot 函数来获取进程中模块信息的快照然后调用Module32Next 和 Module32First来枚举模块信息...StackWalker时只需要关注esp ebp eip的信息,所以这里我们也只简单的获取这些寄存器的环境,而其他的就不管了。

    4.1K40

    如何在.NET程序崩溃时自动创建Dump?

    今天在浏览张队转载文章的留言时,遇到一个读者问了这样的问题,如下图所示: 首先能明确的一点是"程序崩溃退出了是不能用常规的方式 dump 的",因为整个进程树都已经退出。...一般来说常规的方法是没办法读取到的,也有一些特殊的方式,比如有关部门在调查取证时,就可以通过一些工具读取到内存中的信息。当然这是一些 hack 手段,不在本文讨论中。...不过好消息是,虽然您无法在程序崩溃退出以后创建 Dump,但是您可以在程序崩溃时自动创建 Dump,这样下次遇到程序崩溃,那么就可以有分析的现场了。...Windows 平台 在 Windows 中,可以将 Windows 错误报告 (WER) 配置为在应用程序崩溃时生成转储。...总结 本文主要是介绍了如何在 dotNet 程序崩溃时自动创建 Dump,Windows 上的方法对于.NET Freamwork 和.NET Core 版本都适用。.

    2.7K30

    C++程序崩溃时内存泄漏的真相

    第一部分:崩溃时的内存处理虚拟内存系统的基本原理现代操作系统使用虚拟内存系统为每个进程提供独立的地址空间。当程序分配内存时,实际发生的是虚拟地址到物理页的映射。...当进程崩溃时,操作系统内核会执行以下清理操作:展开代码语言:C++AI代码解释//操作系统内核的伪代码逻辑voidterminate_process(Process*proc){//1.释放所有用户态堆内存...section正常流程程序启动:进程创建虚拟地址空间内存申请:new/malloc调用系统API内存使用:读写操作内存释放:delete/free归还内存程序退出:系统回收剩余资源section崩溃流程程序启动...:进程创建虚拟地址空间内存申请:new/malloc调用系统API内存使用:读写操作发生崩溃:段错误/除零等系统接管:内核终止进程强制回收:释放所有进程资源不同类型资源的行为差异并非所有资源在崩溃时的表现都相同...unique_ptr(acquire_resource());autores2=std::unique_ptr(acquire_resource());//即使抛出异常,栈展开时也会调用析构函数

    21510

    调用 subprocess 时小心 shell=True

    小心调用 subprocess,避免因 shell=True 而命令行解析错误 Python 中的 subprocess 模块可以轻松实现执行外部命令和进程的功能。...我们经常会用它来调用一些命令行工具的功能。但是在使用 subprocess 调用复杂命令时,有一个容易犯但影响比较大的错误 - 使用shell=True参数,导致命令行解析错误,子进程执行失败。...总结 综上,调用 subprocess 执行复杂命令时,如果不必要,最好避免使用 shell=True。直接传入命令列表,可以最大限度避免命令行解析错误的问题。...只有当命令必须由 shell 处理时,例如需要变量替换,才使用 shell=True。记录这个教训,在将来调用 subprocess 时多加注意,可以避免很多定制错误和调试时间,让代码更稳定。

    1.5K20

    写论文时,Word又崩溃了

    写论文时,本来就是绞尽脑汁的时候。此时,如果word反复崩溃,估计瞬间就想砸掉电脑了。 ? 尽管word有自动保存的功能,但它不是万能的,也有失灵的时候。...名场面:↓ “word崩溃后,既无法缓冲出来,也无法关闭,此时只能强制退出。但是,再次打开word之后,发现word自动保存的版本并不及时,而是更早期的版本。” 意味着这段时间全部白忙活了!...写论文时,需要插入大量的图片,包括TIF和JPEG格式。最坏事儿的就是TIF格式图片。 TIF格式是高清位图。如果word文档中插入大量的TIF图片,会导致单个word文件有十几兆甚至几十兆大小。...如果在word完全加载之前就开始操作,此时极易崩溃和闪退。 ② 文档内经过word压缩后的TIF图片会变得模糊。此时,TIF图片的清晰度取决于上图中word设置的参数。

    1.3K30

    Lua调用C++时打印堆栈信息

    公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠“猜”来复现bug...更为郁闷的是很多时候并没有使用log输出,在崩溃日志里还无法查看大概在哪一步操作崩溃的… 后来在网上搜索了一下,受到一点启发,lua代码在执行的时候可随时调用debug.traceback()方法来获得调用栈的字符串信息...而c++导出方法给lua调用,是使用tolua++工具实现的,通过ant实现将多个pkg文件生成一个cpp文件。...打印lua调用堆栈的方法: // 打印lua调用栈开始 lua_getglobal(tolua_S, "debug"); lua_getfield(tolua_S, -1, "traceback...C++函数崩溃时,查看lua的调用栈信息 (特别适用于tolua++) cocos2d-x集成lua 导出 C/C++ API 给 Lua 使用 build.xml示例 Ant-Tasks

    3.5K20

    ICML 2025 | 如何在合成文本数据时避免模型崩溃?

    然而,这一趋势也带来了严峻挑战:合成数据如果不加控制地使用,可能引发 “模型崩溃”(Model Collapse)问题。...最近在 ICML 2025 会议上,来自上交大等研究机构的研究团队系统性地剖析了这一问题,并提出了一种创新的数据生成策略,Token-Level Editing,旨在有效避免模型崩溃。...非迭代式模型崩溃现象识别 为了揭示合成数据对语言模型训练的影响,研究团队系统分析了不同合成比例下的模型训练行为。实验显示,即使只进行一次预训练,在数据中混入高比例的合成数据,也会显著导致性能下降。...这种现象被称为非迭代式模型崩溃(Non-iterative Collapse),并在多个语言理解任务上得到了验证。...理论结果 测试误差有限上界,避免模型崩溃 作者进一步构建了线性回归分析框架,并证明 Token-Level Editing 过程的测试误差存在固定上界: 相比模型崩溃中的误差线性上升,这里误差被严格约束

    36600
    领券