代码之家  ›  专栏  ›  技术社区  ›  341008 Sylvain

如何在使用GDB调试时打印指针指向的字符串?

  •  13
  • 341008 Sylvain  · 技术社区  · 14 年前

    当使用GDB单步执行程序时,如何检查指针指向的字符串?

    我能看到a指针指向 0x82c6e10 . 我知道这是一根绳子。如何打印?

    使用 printf("%s\n", 0x82c6e10) 给予 Bad format string, missing '"'. gdb不抱怨未知命令的事实告诉我,解决方案是我正在做的一些变化。我说得对吗?我试着避开那些引语,但那没用。

    4 回复  |  直到 6 年前
        1
  •  15
  •   wnoise    14 年前

    在这里 printf 不是函数,而是 gdb 命令。省略括号。

    更好的方法是,使用 print 命令,或 x 带格式的命令 /s

    (实际上可以调用C函数 printf() call 命令。)`

    gdb公司 有大量可用的帮助 help 命令。试试看。

        2
  •  18
  •   Paul R    9 年前

    使用 x 而不是 p :

    x /s 0x82c6e10
    
        3
  •  14
  •   Jacek Konieczny    14 年前

    尝试:

    print (char *)pointer
    
        4
  •  3
  •   Thomas Padron-McCarthy    14 年前

    打印(字符*)0x82c6e10