在GDB中编写NSPrintForDebugger以在C中打印对象

时间:2012-08-19 18:36:49

标签: c debugging gdb

当使用GDB(在Gentoo Linux上使用文本界面,TTY和SSH)来调试C代码时,我想在对象中打印数据。当我尝试使用print-object <objectname>时,我收到了消息

  

评估此表达式需要程序具有函数“_NSPrintForDebugger”

我找不到任何关于如何创建这样一个函数的文档或示例(是我,还是Linux文档中的文档非常简短?)。 我想为我可以建模的gdb的NSPrintForDebugger函数示例。请注意,我是C,Linux,MPI,emacs和gdb的新手。

为了使这更难一点,我找不到我想要打印的所有对象的定义。

如果它有助于举例,我想print-object的一些对象是:

  1. 的UserData

    typedef struct {   realtype dx,hdcoef,hacoef;   int npes,my_pe   MPI_Comm通讯;   realtype z [100]; } *用户数据; UserData数据;

  2. N_Vector(SUNDIALS的一部分,可能有varying definitions)。

  3. void * cvode_mem(任何指向void的指针)
  4. realtype(不同大小的花车,也是SUNDIALS的一部分)
  5. MPI_Comm(可能只是一个整数)
  6. P.S。我注意到,例如,p *data显示了很多信息。但我想要更多。

1 个答案:

答案 0 :(得分:1)

GDB NSPrintForDebugger命令调用的print-object函数是Objective-C运行时的一部分。由于您没有使用Objective-C,请忽略它。