C++程序高级调试与优化_第一篇
地址空间 32位系统,CPU可直接寻址4GB空间,这也是每个进程的地址空间大小。 其中,高2GB供内核模块使用,称为内核空间。 低2GB供用户态模块使用,称为用户空间。 使用/3GB开关,可以将用户空间增大到3GB。 Windows内容load到内核空间高地址,主程序load到用...
地址空间 32位系统,CPU可直接寻址4GB空间,这也是每个进程的地址空间大小。 其中,高2GB供内核模块使用,称为内核空间。 低2GB供用户态模块使用,称为用户空间。 使用/3GB开关,可以将用户空间增大到3GB。 Windows内容load到内核空间高地址,主程序load到用...
Windows进程线程模型 进程 概述 Windows中进程是程序执行的实例,包含代码、数据、资源(如内存、文件句柄)以及独立的内存空间 每个进程拥有唯一的进程环境块(PEB),用于维护进程状态和资源信息 进程内核对象(PCB) 由内核管理的不可见数据结构,记录进程优先级、状态(...
数字表达式语法 基本语法规则 十六进制 前缀:0x 或 0n 例如:0x3A, 0n3A 十进制 直接写数字,无需前缀 八进制 前缀:0o 或 0 例如:0o72, 072 二进制 前缀:0b 例如:0b111010 支持操作符 加减乘除,取模 按位与,按位或,按位异或,按位非 ...
平台相关 select 支持:windows 支持:linux,macos,bsd,aix等 poll 支持:linux,macos,bsd等 不支持:一些交旧的或特定的unix操作系统可能不支持poll 不支持:windows不提供标准的poll,但可以通过其他相似的api来达...
进程实例句柄 加载到进程地址空间的每一个执行文件或者DLL文件都被赋予了一个独一无二的实例句柄。 可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。在需要加载资源的函数调用中,一般都需要提供此句柄的值。 比如从一个可执行文件的映像中加载一个图...
简介 组件对象模型(COM)是一个独立于平台的分布式面向对象的系统,用于创建可交互的二进制软件组件 是OLE(复合文档),ActiveX(Internet组件)等的基础技术 不是一种语言,而是一种标准,用于创建运行时进行交互的可重用的软件库,无须编译到应用程序中,即可使用COM库...
示例dump分析:未捕获异常 代码 分析步骤 使用!analyze -v 看到异常代码是e06d7363 对应着CPP_EH_EXCEPTION 触发场景一般为,C++ 托管扩展(/clr)中的异常 使用.exr -1查看异常记录 使用kn查看栈 可以看到是28行Crash函数里...
!analyze -v 概述 用于 自动分析当前异常或崩溃的根本原因,并输出详细的诊断信息 它是调试程序崩溃、蓝屏(BSOD)或未处理异常的首选工具 功能 分析当前异常类型(如访问违规、除零错误等),定位触发异常的代码位置 提供异常上下文、调用栈、寄存器状态、可能原因及建议操作 ...
概述 DllMain 是 Windows 动态链接库(DLL)的入口函数,类似于可执行程序的 main 函数 它在以下四种情况下会被系统自动调用: DLL 被加载到进程内存 DLL 被卸载 进程创建新线程 线程退出 参数 保留参数 lpReserved: DLL_PROCESS_...
Sysinternals工具包 下载地址 VS VS远程调试 在VS安装的目录下,从Remote Debugger这个文件夹中,拿到x86或x64 在待调试环境中,管理员权限打开msvsmon.exe 无身份验证,允许任何用户进行调试 在调试环境中: 附加到进程 远程 选择连接模...
搜索当前分类