最近我对glib的工作原理感到好奇。我想用gdb调试它的源代码。但是我被卡住了。
以下是源代码下载后我遵循的步骤:
<img scr="test.jpg" alt="TEST" width="200" height="200">
CFLAGS=-g ./configure --enable-debug=yes
make
我创建了test.c,其中我调用了glib API make install
函数
g_hash_table_new
#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;
}
我使用gdb来调试输出测试程序gdb test
我使用gdb&#39; directiory命令指定源代码位置 目录〜/ Downloads / glib-2.46.2
然后我使用gdb逐步调试测试。
我发现当我使用gdb&#s; step命令时,gdb无法进入包含glib API的源代码文件,例如gcc test.c pkg-config --cflags --libs glib-2.0 -g -o test
和g_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
答案 0 :(得分:0)
您需要使用UserManager.IsInRoleAsync(user.Id,"Admin")
将动态链接器指向您的glib构建。您可以使用LD_LIBRARY_PATH
检查将在运行时链接的库。 (除非你改变你副本中的ABI,否则你建立哪一个并不重要。)
您可能还想查看How to run and debug your GLib application,了解如何启用运行时调试输出。