0

我向 GTK4 库添加了回溯以调试严重警告。输出如下:

Entry 1: /lib/x86_64-linux-gnu/libffi.so.8(+0x78f6) [0x7f2cf06cf8f6]
Entry 2: /lib/x86_64-linux-gnu/libffi.so.8(+0x4426) [0x7f2cf06cc426]
Entry 3: /home/tohoyn/git/other/guile/libguile/.libs/libguile-3.0.so.1(+0x5bc27) [0x7f2cf09e9c27]
Entry 4: /home/tohoyn/git/other/guile/libguile/.libs/libguile-3.0.so.1(+0xd0e29) [0x7f2cf0a5ee29]
Entry 5: /home/tohoyn/git/other/guile/libguile/.libs/libguile-3.0.so.1(+0xd2414) [0x7f2cf0a60414]
Entry 6: /home/tohoyn/git/other/guile/libguile/.libs/libguile-3.0.so.1(scm_call_n+0x1bb) [0x7f2cf0a6799b]
Entry 7: /home/tohoyn/git/other/guile/libguile/.libs/libguile-3.0.so.1(+0x5b812) [0x7f2cf09e9812]
Entry 8: /lib/x86_64-linux-gnu/libffi.so.8(+0x74cb) [0x7f2cf06cf4cb]
Entry 9: /lib/x86_64-linux-gnu/libffi.so.8(+0x7b18) [0x7f2cf06cfb18]
Entry 10: /lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_closure_invoke+0x16f) [0x7f2ceaa24ccf]
Entry 11: /lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x30086) [0x7f2ceaa41086]
Entry 12: /lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_signal_emit_valist+0x11a4) [0x7f2ceaa42a64]
Entry 13: /lib/x86_64-linux-gnu/libgobject-2.0.so.0(g_signal_emit+0xe7) [0x7f2ceaa42d07]
Entry 14: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x2d87f2) [0x7f2ce97057f2]
Entry 15: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x2d25b2) [0x7f2ce96ff5b2]
Entry 16: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x22a4ef) [0x7f2ce96574ef]
Entry 17: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x2f9cfc) [0x7f2ce9726cfc]
Entry 18: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x302b59) [0x7f2ce972fb59]
Entry 19: /lib/x86_64-linux-gnu/libgtk-4.so.1(+0x302cca) [0x7f2ce972fcca]

(guile:8171): GLib-GObject-CRITICAL **: 08:15:11.918: g_object_is_floating: assertion 'G_IS_OBJECT (object)' failed

回溯是使用 GNU libc 回溯函数生成的。为什么libffi即使我编译了没有隐藏可见性属性的库并且符号存在于libffi共享库中,涉及的条目也不显示任何符号信息?我还在-Wl,--export-dynamic -g.LDFLAGS

的输出nm -n -D libffi.so.8如下:

                 U abort@GLIBC_2.2.5
                 U access@GLIBC_2.2.5
                 U close@GLIBC_2.2.5
                 w __cxa_finalize@GLIBC_2.2.5
                 U endmntent@GLIBC_2.2.5
                 U __errno_location@GLIBC_2.2.5
                 U fclose@GLIBC_2.2.5
                 U fopen@GLIBC_2.2.5
                 U free@GLIBC_2.2.5
                 U ftruncate@GLIBC_2.2.5
                 U __getdelim@GLIBC_2.2.5
                 U getenv@GLIBC_2.2.5
                 U getmntent_r@GLIBC_2.2.5
                 w __gmon_start__
                 U hasmntopt@GLIBC_2.2.5
                 U __isoc99_sscanf@GLIBC_2.7
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U memcpy@GLIBC_2.14
                 U memfd_create@GLIBC_2.27
                 U memset@GLIBC_2.2.5
                 U mkostemp@GLIBC_2.7
                 U mmap@GLIBC_2.2.5
                 U munmap@GLIBC_2.2.5
                 U open@GLIBC_2.2.5
                 U pthread_mutex_init@GLIBC_2.2.5
                 U pthread_mutex_lock@GLIBC_2.2.5
                 U pthread_mutex_unlock@GLIBC_2.2.5
                 U setmntent@GLIBC_2.2.5
                 U __stack_chk_fail@GLIBC_2.4
                 U statfs@GLIBC_2.2.5
                 U strchr@GLIBC_2.2.5
                 U strlen@GLIBC_2.2.5
                 U strncmp@GLIBC_2.2.5
                 U sysconf@GLIBC_2.2.5
                 U unlink@GLIBC_2.2.5
                 U write@GLIBC_2.2.5
0000000000000000 A LIBFFI_BASE_8.0
0000000000000000 A LIBFFI_CLOSURE_8.0
0000000000000000 A LIBFFI_COMPLEX_8.0
0000000000000000 A LIBFFI_GO_CLOSURE_8.0
0000000000005070 T ffi_prep_cif@@LIBFFI_BASE_8.0
0000000000005140 T ffi_prep_cif_var@@LIBFFI_BASE_8.0
0000000000005270 T ffi_get_struct_offsets@@LIBFFI_BASE_8.0
00000000000052b0 T ffi_raw_size@@LIBFFI_BASE_8.0
0000000000005310 T ffi_raw_to_ptrarray@@LIBFFI_BASE_8.0
0000000000005380 T ffi_ptrarray_to_raw@@LIBFFI_BASE_8.0
0000000000005570 T ffi_java_raw_size@@LIBFFI_BASE_8.0
00000000000055e0 T ffi_java_raw_to_ptrarray@@LIBFFI_BASE_8.0
0000000000005650 T ffi_java_ptrarray_to_raw@@LIBFFI_BASE_8.0
0000000000005830 T ffi_closure_alloc@@LIBFFI_CLOSURE_8.0
0000000000006f70 T ffi_closure_free@@LIBFFI_CLOSURE_8.0
0000000000006f80 T ffi_call@@LIBFFI_BASE_8.0
0000000000006fb0 T ffi_raw_call@@LIBFFI_BASE_8.0
0000000000007080 T ffi_java_raw_call@@LIBFFI_BASE_8.0
0000000000007150 T ffi_call_go@@LIBFFI_GO_CLOSURE_8.0
0000000000007170 T ffi_prep_closure_loc@@LIBFFI_CLOSURE_8.0
0000000000007200 T ffi_prep_closure@@LIBFFI_CLOSURE_8.0
0000000000007210 T ffi_prep_raw_closure_loc@@LIBFFI_CLOSURE_8.0
0000000000007250 T ffi_prep_raw_closure@@LIBFFI_CLOSURE_8.0
0000000000007260 T ffi_prep_java_raw_closure_loc@@LIBFFI_CLOSURE_8.0
00000000000072a0 T ffi_prep_java_raw_closure@@LIBFFI_CLOSURE_8.0
0000000000007630 T ffi_prep_go_closure@@LIBFFI_GO_CLOSURE_8.0
00000000000081a0 R ffi_type_void@@LIBFFI_BASE_8.0
00000000000081c0 R ffi_type_uint8@@LIBFFI_BASE_8.0
00000000000081e0 R ffi_type_sint8@@LIBFFI_BASE_8.0
0000000000008200 R ffi_type_uint16@@LIBFFI_BASE_8.0
0000000000008220 R ffi_type_sint16@@LIBFFI_BASE_8.0
0000000000008240 R ffi_type_uint32@@LIBFFI_BASE_8.0
0000000000008260 R ffi_type_uint64@@LIBFFI_BASE_8.0
0000000000008280 R ffi_type_sint64@@LIBFFI_BASE_8.0
00000000000082a0 R ffi_type_pointer@@LIBFFI_BASE_8.0
00000000000082c0 R ffi_type_double@@LIBFFI_BASE_8.0
00000000000082e0 R ffi_type_longdouble@@LIBFFI_BASE_8.0
0000000000008310 R ffi_type_float@@LIBFFI_BASE_8.0
0000000000008330 R ffi_type_sint32@@LIBFFI_BASE_8.0
000000000000aca0 D ffi_type_complex_float@@LIBFFI_COMPLEX_8.0
000000000000acc0 D ffi_type_complex_double@@LIBFFI_COMPLEX_8.0
000000000000ace0 D ffi_type_complex_longdouble@@LIBFFI_COMPLEX_8.0
4

0 回答 0