对于刚学习Unix/Linux环境C编程的小朋友们或者写了很多所谓的C代码的老手们(其实很可能是机械程序员或者是伪程序员)来说,要记住gdb的eXaming memory的语法其实是相当不容易的,如果学习了gdb的这一语法后不再反复操练,很快就会忘记得干干净净。

先看看gnu/docs/gdb上怎么说,

8.5 Examining memory

You can use the command x (for "examine") to examine memory in any of several formats, independently of your program's data types.

x/nfu addr
x addr
x
    Use the x command to examine memory.

n, f, and u are all optional parameters that specify how much memory to display and how to format it; addr is an expression giving the address where you want to start displaying memory. If you use defaults for nfu, you need not type the slash `/'. Several commands set convenient defaults for addr.

n, the repeat count
    The repeat count is a decimal integer; the default is 1. It specifies how much memory (counting by units u) to display.

f, the display format
    The display format is one of the formats used by print, `s' (null-terminated string), or `i' (machine instruction). The default is `x' (hexadecimal) initially. The default changes each time you use either x or print.

u, the unit size
    The unit size is any of

b
        Bytes.
    h
        Halfwords (two bytes).
    w
        Words (four bytes). This is the initial default.
    g
        Giant words (eight bytes).

Each time you specify a unit size with x, that size becomes the default unit the next time you use x. (For the `s' and `i' formats, the unit size is ignored and is normally not written.)

addr, starting display address
    ...<snip>...

好吧,eXamine memory语法格式可简单地总结为:

X /NFU <addr> #(为方便后面巧记,下面对关键字符一律采用大写)
X: eXamine (可大约理解为从内存地址<addr>里读数据)
N: the repeat couNt (重复读取的次数)
F: the display Format (格式化显示)
U: the Unit size (读取的内存单元尺寸) 对于U: the Unit Size,
B: Byte 1个字节
H: Halfword (two bytes)(半字)2个字节
W: Word (four bytes)(字) 4个字节
G: Giant (eight bytes)(双字) 8个字节

第一句话: 我X,No Follow Up!

如果你是一个工作多年的人,那么这句话一定能说到你心里去。想想看,好几个月前,就某个问题开了一下午会,扯了好几个小时的淡,但是没有人记AI,也没有人后续跟进落实,不就是典型的"我X(嚓),No Follow Up"不是?

第二句话: 彪悍啦,我滴哥! (Biao Han la, Wo di Ge!) 我滴哥,我滴天堂~

能想到这句话,我要特别感谢一下我亲爱的弟儿。大约6年前,我亲爱的弟儿来北京集团总部开会,跟我还有我媳妇一起去巴沟的华联吃海底捞火锅,远远看见华联的标识BHG,他脱口而出,“BHG, 彪悍哥!”。当时我很自豪地回应了他一句,“我为你感到骄傲,二娃!”。 他问“为啥子?”,我说:“因为你有一个特别好的‘锅锅’(重庆话:哥哥),还有一个特别好的嫂子!” 弟娃儿的一句“BHG, 彪悍哥!”启发了我,于是我彻底记住了BHWG,从此再也不可能忘记,因为已经灰常灰常形象地刻进了脑子里!

两句话帮你彻底记住gdb之eXamining memory的更多相关文章

  1. 神级程序员通过两句话带你完全掌握Python最难知识点——元类!

    千万不要被所谓"元类是99%的python程序员不会用到的特性"这类的说辞吓住.因为 每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生 ...

  2. 两句话掌握python最难知识点——元类

    千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...

  3. 两句话掌握 Python 最难知识点——元类

    千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...

  4. Leetcode884.Uncommon Words from Two Sentences两句话中的不常见单词

    给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回所有不常用单 ...

  5. 简单两句话解释下prototype和__proto__

    先上两句代码: var Person = function () {}; var p = new Person(); 把new的过程拆分成以下三步: <1> var p={}; 也就是说, ...

  6. 用sql合并列,两句话合为一句

    合并bc两列 UPDATE `test` SET `a`=concat(`b`,`c`) 清空a列 UPDATE `test` SET `a` = NULL

  7. [Swift]LeetCode884. 两句话中的不常见单词 | Uncommon Words from Two Sentences

    We are given two sentences A and B.  (A sentence is a string of space separated words.  Each word co ...

  8. leetcode-884两句话中的不常见单词

    ''' 给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回所有 ...

  9. LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)

    题目标签:HashMap 题目给了我们两个句子,让我们找出不常见单词,只出现过一次的单词就是不常见单词. 把A 和 B 里的word 都存入 map,记录它们出现的次数.之后遍历map,把只出现过一次 ...

随机推荐

  1. webx学习1

    webx的配置 如果想在web项目中使用webx框架,需要在web-inf/web.xml文件中进行相关的配置. 1.初始化spring容器 初始化spring容器- /web-inf/web.xml ...

  2. cookie和session详解[转]

    文章链接: http://aijezdm915.iteye.com/blog/1272530 cookie.session 都是用来保存用户状态信息的一种方法或手段 二者主要区别是:         ...

  3. socket网络编程快速上手(二)——细节问题(1)

    三.细节问题一个也不能少 Socket编程说简单也简单,程序很容易就能跑起来,说麻烦还真是麻烦,程序动不动就出问题.记得刚开始写网络代码的时候,那真是令人抓狂的经历,问题一个套一个,一会服务器起不来了 ...

  4. WebForms vs. MVC

    [译]WebForms vs. MVC(推荐阅读) 正文如下======================================================= 原文示例(VS2012): ...

  5. 广告频次控制(frequency capping)

    频次控制介绍 广告中的频次控制是指控制一个用户最多在指定时间内看到一个广告(或相似广告)的次数,比如广告主可以限制一个用户最多只能一天看到一个广告3次(频次控制也可以让publisher来指定,但本文 ...

  6. Ubuntu环境变量设置

    在配置Ubuntu里面的JDK环境变量时,从网上找到的资料各异,在不同的文件里面配置,如/etc/environment./etc/profile,环境变量设置都是可以的.但是难免会有其它的疑问,不同 ...

  7. iOS 开发之协议-代理传值

    刚开始做iOS开发的时候,对 protocol.delegate 的理解一直都是晕晕乎乎一知半解的状态,不知道两个UIViewController之间怎么进行传值. 面试过几个童鞋,问道怎么用 del ...

  8. C#跨窗体调用控件(委托回调函数使用例子)

    问题: 有两个窗体,FORM1(含一个label控件,一个名为显示form2的button控件)和FORM2(含一个button控件).启动时,FORM1中点击button控件显示form2使FORM ...

  9. Windbg是windows平台上强大的调试器

    基础调试命令 - .dump/.dumpcap/.writemem/!runaway Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windb ...

  10. HDU 2040 亲和数

    Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284. ...