如何调试Glib?

时间:2017-08-22 01:47:48

标签: c glib

最近我对glib的工作原理感到好奇。我想用gdb调试它的源代码。但是我被卡住了。

以下是源代码下载后我遵循的步骤:

  1. <img scr="test.jpg" alt="TEST" width="200" height="200">

  2. CFLAGS=-g ./configure --enable-debug=yes

  3. make

  4. 我创建了test.c,其中我调用了glib API make install函数

    g_hash_table_new
  5. #include <glib.h> int main(int argc, char** argv) { GHashTable* hash = g_hash_table_new(g_str_hash, g_str_equal); g_hash_table_insert(hash, "Virginia", "Richmond"); g_hash_table_insert(hash, "Ohio", "Columbus"); return 0; }

  6. 我使用gdb来调试输出测试程序gdb test

  7. 我使用gdb&#39; directiory命令指定源代码位置 目录〜/ Downloads / glib-2.46.2

  8. 然后我使用gdb逐步调试测试。

    我发现当我使用gdb&#s; step命令时,gdb无法进入包含glib API的源代码文件,例如gcc test.c pkg-config --cflags --libs glib-2.0 -g -o testg_hash_table_new。有一些调试信息:

      

    &#34;断点1,main()at test.c:5

         

    GHashTable * hash = g_hash_table_new(g_str_hash,g_str_equal);
      缺少单独的debuginfos,请使用:debuginfo-install glib2-2.46.2-4.el7.x86_64 glibc-2.17-157.el7_3.2.x86_64&#34;

    我该怎么办?我哪里错了?

    护理: 环境:centos 7 版本:油嘴-2.32.2

1 个答案:

答案 0 :(得分:0)

您需要使用UserManager.IsInRoleAsync(user.Id,"Admin")将动态链接器指向您的glib构建。您可以使用LD_LIBRARY_PATH检查将在运行时链接的库。 (除非你改变你副本中的ABI,否则你建立哪一个并不重要。)

您可能还想查看How to run and debug your GLib application,了解如何启用运行时调试输出。