Windows.用户态程序高效排错.2007.电子工业出版社(熊力)__笔记(杂)

ZC: 下面记录的页码编号(P.??)都是指 书的 页码,而非 PDF的页码 (书P.21 <--> Pdf.P.41)

1、P.32:SRV*D:\Symbols_Web*http://msdl.microsoft.com/download/symbols;C:\Symbols

    ZC: 各个 应该是使用 分号(";")隔开

    ZC: VC6编译的Release,默认设置下,未发现 pdb文件

    ZC: 应该把本地的目录写在前面:D:\XiongLi(被调试程序对应的symbol文件目录);C:\Symbols(本地系统symbol所在目录);SRV*D:\Symbols_Web*http://msdl.microsoft.com/download/symbols

      D:\XiongLi;C:\Symbols;SRV*D:\Symbols_Web*http://msdl.microsoft.com/download/symbols

  1.1、P.25: 命令g:让程序继续运行

  1.2、P.26: 让程序暂停接受检查:快捷键(Ctrl+Break)、菜单栏(Debug-->Break)

  1.3、在 WinDBG--> File --> Symbol File Path ... 的对话框中,填入信息之后,"√"选 复选框"Reload",即可加载新设置的symbol

  1.4、x命令 查找 函数二进制入口

    x exe名称不带后缀!函数名称

    ZC: 注意上面是 感叹号("!"),而非竖线("|") ! ! 且 感叹号 前面不能有空格,后面可以有空格

  1.3、P.33: "!sym"命令 让调试器在自动寻找symbol的时候给出详细的信息,比如搜索和下载的路径

    !sym noisy

2、

3、

4、

5、

6、

时间: 2024-11-07 12:32:29

Windows.用户态程序高效排错.2007.电子工业出版社(熊力)__笔记(杂)的相关文章

Windows.用户态程序高效排错.2007.电子工业出版社(熊力)__代码保存

1.2.1.3 #include <stdio.h> #include <stdlib.h> char* getcharBuffer() { return "6969,3p3p"; } void changeto4p(char* buffer) { while (*buffer) { if (*buffer == '3') *buffer = '4'; buffer ++; } } void main() { printf("%s\n", &

Linux用户态程序计时方式详解

前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 本文将不考虑这些影响因素(相关资料可参考<深入理解计算机系统>一书),而仅仅关注Linux系统中用户态程序执行时间的计算方式.除本文所述计时方式外,还可借助外部工具统计耗时,如<Linux调试分析诊断利器——strace>一文中介绍的strace. 本文示例代码的运行环

Linux用户态程序计时方式详解[转]

转自: http://www.cnblogs.com/clover-toeic/p/3845210.html 前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 本文将不考虑这些影响因素(相关资料可参考<深入理解计算机系统>一书),而仅仅关注Linux系统中用户态程序执行时间的计算方式.除本文所述计时方式外,还可借助外部工具统计耗时

打通用户态程序和内核系列之一:用户态程序如何执行系统调用

前言 之前弄个一段时间内核,而最近在应用程序特别是C++ 方面开发多一些.当前日常工作中碰到一些性能分析.不同锁API选择的问题,发现由于对用户态程序API背后的工作原理,特别是它和内核的调用关系.在内核中具体实现过程不甚清楚,导致前期的预期无法进行分析.为此,打算结合工作中碰到的问题,比如: 用户态程序如何执行系统调用: 用户态锁的底层实现及其和内核态锁的关系如何: 用户态不同锁(自旋锁,读写锁,条件锁)和无锁机制的对比该如何做理论分析: ?Libaio 异步IO在内核中的具体使怎样实现的:

“飞思卡尔”杯智能汽车设计与实例教程完整PDF学习版 [隋金雪,杨莉,张岩编著][电子工业出版社][2014.01][514页]

“飞思卡尔”杯智能汽车设计与实例教程完整PDF学习版 [隋金雪,杨莉,张岩编著][电子工业出版社][2014.01][514页] 原文地址:https://www.cnblogs.com/scrazy/p/9148134.html

参加电子工业出版社博文视点举办的作者高峰论坛有感

刚从美国回到上海,就受到电子工业出社博文视点郭立老师的邀请,参加电子工业出版社举办的作者高峰论坛. 写作这项工作平时都是作者们一个个独自完成,难得有这样聚在一起互相交流的机会.斗转星移,长江前浪推后浪,在研讨会中,见到了许多年轻有为的作者,既有原创思想,又有认真负责的敬业精神,为读者们提供了一批批脍炙人口的好书. 归纳起来,在这次研讨会中有以下心得体会:(1)所有的成功都不是偶然碰运气的,都是作者坚持不懈地长期耕耘的结果.例如<码农翻身>和<漫画算法>这两本书的作者在写作以前,一直

内核与用户态程序共享内存的方法

一.首先获取一块物理上连续的物理内存 有多种方法. (a)通过kernel命令行参数预留一些内存 这种方法,适合于需要大块的物理连续的内存. 假设物理内存总量为256M.命令行参数中,指定 mem=224M.即只让内核使用前224M内存,忽略其余的内存. 这样,我们就有了32M的内存可用,内存起始物理地址为224*1024*1024. 在内核态,通过ioremap,就可以将此物理地址处的内存映射到内核空间. 不过,这种方法好像在X86_64架构下会有问题.在arm上,则没有发现问题. 有高手知道

[并发并行]_[线程同步]_[Windows用户态下的原子访问的互锁函数]

场景: 1. 多线程编程时,有时候需要统计某个变量或对象的创建个数或者是根据某个变量值来判断是否需要继续执行下去,这时候互锁函数是比较高效的方案之一了. 说明: 1.原子访问:(互锁函数族) -- 原子访问,指线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源. -- 调用一个互锁函数通常只需要执行几个CPU周期(通常小于50),并且不需要从用户模式转换为内核模式(通常这需要1000个CPU周期). -- 互锁函数是CPU硬件支持的,如果是x86处理器,互锁函数会向总线发出一个硬

初探Windows用户态调试机制

我们在感叹Onlydbg强大与便利的同时,是否考虑过它实现的原理呢? 作为一个技术人员知其然必知其所以然,这才是我们追求的本心. 最近在学习张银奎老师的<软件调试>,获益良多.熟悉Windows调试机制,对我们深入理解操作系统以及游戏保护的原理有着莫大好处. 0X01 初探调试原理 调试系统的实现思路如图所示: 调试器与被调试程序建立联系,程序像调试器发送调试信息,调试器暂停程序处理完调试信息后再恢复程序运行,如此周而复始. 下面我们看看如何用操作系统提供的API去实现一个简单的调试器. //