WinDbg命令标记、命令
命令标记 命令分隔符 用于分隔单行上的多个命令 块分隔符 圆括号 一对大括号 ( { } ) 用于包围调试器命令程序中的语句块 方括号 用于访问数组元素或表示寄存器或内存位置 别名解释器 用户别名(以$开头) 用户别名只能在当前调试会话中使用 例如:$myalias 全局别名(以...
命令标记 命令分隔符 用于分隔单行上的多个命令 块分隔符 圆括号 一对大括号 ( { } ) 用于包围调试器命令程序中的语句块 方括号 用于访问数组元素或表示寄存器或内存位置 别名解释器 用户别名(以$开头) 用户别名只能在当前调试会话中使用 例如:$myalias 全局别名(以...
进程实例句柄 加载到进程地址空间的每一个执行文件或者DLL文件都被赋予了一个独一无二的实例句柄。 可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。在需要加载资源的函数调用中,一般都需要提供此句柄的值。 比如从一个可执行文件的映像中加载一个图...
strace 一个强大的命令行工具,用于在Linux系统上跟踪系统调用和信号 主要用于调试和诊断程序,在了解程序如何与操作系统交互方面非常有用 用法 跟踪系统调用 跟踪现有进程 筛选特定系统调用 写入到文件 跟踪子进程 高级用法 使用-c选项可以查看关于系统调用的统计信息,如次数...
进程间打开文件的继承 fork以后的子进程自动继承了父进程的打开的文件,继承以后,父进程关闭打开的文件不会对子进程造成影响 守护进程 Daemon运行在后台也称作“后台服务进程”。 它是没有控制终端与之相连的进程。它独立与控制终端、通常周期的执行某种任务。 那么为什么守护进程要脱...
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...
Windows 日志 可以通过现有日志来观察 当不方便附加进程时,可以通过写文件的方法写日志 Visual Studio 附加到进程 CLion 附加到进程 windbg Linux 日志 应用程序日志 var/log/ 当不方便附加进程时,可以通过写文件的方法写日志 gdb l...
启动流程 BasicEntry 作为dll导出接口 PrepareEnv 先构建运行时 ntdll.dll kernel32.dll 获取当前dll句柄 EXE被当做DLL加载时,首先修复重定位数据,此时的全局变量等还无法访问 因为Windows操作系统不会修复当做DLL加载的E...
文档地址 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-commands 语法规则 大小写可以任意组合 一个或多个空格,或,来分隔命令参数 符号文件 srv*d:\MySer...
地址空间 32位系统,CPU可直接寻址4GB空间,这也是每个进程的地址空间大小。 其中,高2GB供内核模块使用,称为内核空间。 低2GB供用户态模块使用,称为用户空间。 使用/3GB开关,可以将用户空间增大到3GB。 Windows内容load到内核空间高地址,主程序load到用...
消息循环 概述 ATL消息循环 h cpp 其他:Visual studio 相关 符合模式permissive 概述 /permissive-是 Visual Studio(从 VS 2017 版本开始引入)中的一个重要编译器选项,旨在让编译器遵循最新的 C++ 语言标准(C+...
搜索当前分类