【问题标题】:GDB pretty printers for igraph_vector_t and igraph_matrix_t用于 igraph_vector_t 和 igraph_matrix_t 的 GDB 漂亮打印机
【发布时间】:2015-11-26 17:09:06
【问题描述】:

我用的是igraph的C接口,有时候调试的时候想看看igraph_vector_t的一些变量的内容,还有igraph_matrix_t的内容。

是否有一些 GDB 漂亮的打印机可用,比如那些可用于 STL 容器的打印机(通常是 std::vector<T>?)

【问题讨论】:

    标签: c++ c debugging igraph pretty-print


    【解决方案1】:

    不,没有,但如果可能的话,您可以尝试从gdb 中调用igraph_vector_print()。或者,您可以访问igraph_vector_tstor_begin 成员——这是一个指向承载向量内容的内存区域的指针。 stor_end 指向该区域的末尾,end 指向向量的最后一个元素之后 - 因此,向量的“有用”部分介于 stor_beginend 之间。

    【讨论】:

    • 我已经通过在代码中创建像这样的igraph_vector_t x //some vectorstd::vector<igraph_real_t> xview(x.stor_begin, x.stor_end) 的 stl 向量然后使用 STL 漂亮的打印机来解决。这样就可以在 gdb 中使用xview 访问x 的内容。
    • 使用 x.stor_begin 和 x.end,而不是 x.stor_end。后者指向为整个向量分配的内存块的末尾,但并非一直使用所有块。向量的“真实”端位于 x.end。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多