V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
levelworm
V2EX  ›  程序员

求问 Linux gdb 有什么命令可以直接把 memory dump 传递到打印机打印到纸上么?

  •  
  •   levelworm · 2020-07-22 09:28:15 +08:00 · 1616 次点击
    这是一个创建于 1576 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在学最初级的逆向,感觉如果能够把x 0x400da0之后显示的函数内容直接打印到纸上,然后在后面自己手写注释是最舒服的。但是我查看了gdb所有的命令,发现并没有可以打印到纸上的,同时我又不想通过 pipeline 来输出到打印机,请问有办法在 gdb 内部完成这个事项吗?谢谢~~

    5 条回复    2020-07-22 13:13:55 +08:00
    lonewolfakela
        1
    lonewolfakela  
       2020-07-22 09:41:15 +08:00
    所以你为啥不想通过 pipeline 来输出到打印机呢……
    levelworm
        2
    levelworm  
    OP
       2020-07-22 09:58:45 +08:00
    @lonewolfakela 能够在 gdb 里头不用退出就行么?如果可以的话最好了,多谢!
    话说还不知道如何 pipe 进打印机不过让我查一下。。。
    listenerri
        3
    listenerri  
       2020-07-22 10:29:53 +08:00   ❤️ 1
    据我所知 gdb 支持 python/shell 扩展,楼主可以想一下怎么自己实现打印,贴一下我的部分配置:
    ```
    # pretty print qt type value
    # "Lekensteyn/qt5printers" github project needed be cloned into "~/.config/gdb/"
    python
    import sys, os.path
    sys.path.insert(0, os.path.expanduser('~/.config/gdb'))
    import qt5printers
    qt5printers.register_printers(gdb.current_objfile())
    end

    # hexdump specified memory block
    define hexdump
    dump memory /tmp/dump.bin $arg0 $arg0+$arg1
    shell hexdump -C /tmp/dump.bin
    end

    # alias for above hexdump
    define hd
    dump memory /tmp/dump.bin $arg0 $arg0+$arg1
    shell hexdump -C /tmp/dump.bin
    end

    ```
    lonewolfakela
        4
    lonewolfakela  
       2020-07-22 12:05:45 +08:00   ❤️ 1
    @levelworm 如果是不想退出的话,可以参考 https://stackoverflow.com/questions/5941158/gdb-print-to-file-instead-of-stdout,设置 gdb 把输出写进文件里,之后打印文件什么的应该就没啥困难的了
    lamy
        5
    lamy  
       2020-07-22 13:13:55 +08:00 via Android   ❤️ 1
    还有个方法,shell 里执行 script,会把 shell 的所有输出输出到文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3623 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.