Thanks for your answer. Sorry, i totally overread x86_64-vulkaninfo. Thanks for the suggestion with building musl with debug symbols, now the output is much more precise. Here is the output of lldb vulkaninfo:
Code: Select all
(lldb) target create "vulkaninfo"
Current executable set to '/usr/bin/vulkaninfo' (x86_64).
(lldb) run
Process 6423 launched: '/usr/bin/vulkaninfo' (x86_64)
Process 6423 stopped
* thread #1, name = 'vulkaninfo', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x0)
frame #0: 0x00007ffff7c1b9a0 libvulkan_nouveau.so`__malloc_alloc_meta + 96
libvulkan_nouveau.so`__malloc_alloc_meta:
-> 0x7ffff7c1b9a0 <+96>: movq -0x8(%rax,%r14), %rcx
0x7ffff7c1b9a5 <+101>: cmpq $0x19, %rcx
0x7ffff7c1b9a9 <+105>: je 0x7ffff7c1b980 ; <+64>
0x7ffff7c1b9ab <+107>: testq %rcx, %rcx
(lldb) bt all
* thread #1, name = 'vulkaninfo', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x0)
* frame #0: 0x00007ffff7c1b9a0 libvulkan_nouveau.so`__malloc_alloc_meta + 96
frame #1: 0x00007ffff7c1c1a2 libvulkan_nouveau.so`alloc_slot + 418
frame #2: 0x00007ffff7c1bde3 libvulkan_nouveau.so`__libc_malloc_impl + 419
frame #3: 0x00007ffff7a1e0b7 libvulkan_nouveau.so`ralloc_size(ctx=0x0000000000000000, size=<unavailable>) at ralloc.c:118:18 [inlined]
frame #4: 0x00007ffff7a1e0aa libvulkan_nouveau.so`rzalloc_size(ctx=0x0000000000000000, size=<unavailable>) at ralloc.c:152:16
frame #5: 0x00007ffff7a1ab2b libvulkan_nouveau.so`_mesa_hash_table_u64_create(mem_ctx=<unavailable>) at hash_table.c:892:9
frame #6: 0x00007ffff7a2630c libvulkan_nouveau.so`u_printf_singleton_init_or_ref at u_printf.c:392:27
frame #7: 0x00007ffff758792f libvulkan_nouveau.so`(anonymous namespace)::vtn_bindgen_dummy::vtn_bindgen_dummy(this=<unavailable>) at nvkcl.cpp:318:10
frame #8: 0x00007ffff7587922 libvulkan_nouveau.so`__cxx_global_var_init at nvkcl.cpp:327:29 [inlined]
frame #9: 0x00007ffff7587922 libvulkan_nouveau.so`_GLOBAL__sub_I_nvkcl.cpp at nvkcl.cpp:0
frame #10: 0x00007ffff7ff3878 libc.so`do_init_fini(queue=0x00007ffff7ffbf10) at dynlink.c:1610:16
frame #11: 0x00007ffff7ff6693 libc.so`dlopen(file=<unavailable>, mode=1) at dynlink.c:2223:3
frame #12: 0x00007ffff7d8dd4c libvulkan.so.1`loader_platform_open_library(libPath="/usr/lib/libvulkan_nouveau.so") at vk_loader_platform.h:414:12 [inlined]
frame #13: 0x00007ffff7d8dd3f libvulkan.so.1`loader_scanned_icd_add(inst=0x0000000000000000, icd_tramp_list=0x00007ffff7db3ab0, filename=<unavailable>, api_version=<unavailable>, lib_status=<unavailable>) at loader.c:2096:14
frame #14: 0x00007ffff7d8e756 libvulkan.so.1`loader_icd_scan(inst=0x0000000000000000, icd_tramp_list=0x00007ffff7db3ab0, pCreateInfo=0x0000000000000000, skipped_portability_drivers=0x0000000000000000) at loader.c:4156:13
frame #15: 0x00007ffff7d8e440 libvulkan.so.1`loader_preload_icds at loader.c:2356:23
frame #16: 0x00007ffff7d940df libvulkan.so.1`terminator_EnumerateInstanceExtensionProperties(pLayerName=0x0000000000000000, pPropertyCount=0x00007fffffffd2ac, pProperties=0x00007ffff7d0f350) at loader.c:7574:9
frame #17: 0x00007ffff7d9eab9 libvulkan.so.1`vkEnumerateInstanceExtensionProperties(pLayerName=0x0000000000000000, pPropertyCount=0x00007fffffffd2ac, pProperties=0x00007ffff7d0f350) at trampoline.c:240:15
frame #18: 0x0000555555687e00 vulkaninfo`std::__1::vector<VkExtensionProperties, std::__1::allocator<VkExtensionProperties>> GetVectorInit<VkExtensionProperties, VkResult (*&)(char const*, unsigned int*, VkExtensionProperties*), char const*&>(func_name="vkEnumerateInstanceExtensionProperties", f=(vulkaninfo`vkEnumerateInstanceExtensionProperties), init=(extensionName = "", specVersion = 0), ts=<no value available>) at vulkaninfo.h:243:15
frame #19: 0x00005555556869d1 vulkaninfo`std::__1::vector<VkExtensionProperties, std::__1::allocator<VkExtensionProperties>> GetVector<VkExtensionProperties, VkResult (*&)(char const*, unsigned int*, VkExtensionProperties*), char const*&>(func_name=<unavailable>, f=<unavailable>, ts=<no value available>) at vulkaninfo.h:253:12 [inlined]
frame #20: 0x0000555555686936 vulkaninfo`AppInstance::AppGetGlobalLayerExtensions(this=0x00007fffffffdb30, layer_name=0x0000000000000000) at vulkaninfo.h:720:16 [inlined]
frame #21: 0x0000555555686936 vulkaninfo`AppInstance::AppGetInstanceExtensions(this=0x00007fffffffdb30) at vulkaninfo.h:612:29
frame #22: 0x000055555567bc3a vulkaninfo`AppInstance::AppInstance(this=0x00007fffffffdb30) at vulkaninfo.h:539:9
frame #23: 0x000055555564818e vulkaninfo`main(argc=1, argv=0x00007fffffffe048) at vulkaninfo.cpp:1301:32
frame #24: 0x00007ffff7f99dba libc.so`libc_start_main_stage2(main=(vulkaninfo`main at vulkaninfo.cpp:1254), argc=<unavailable>, argv=0x00007fffffffe048) at __libc_start_main.c:95:7
frame #25: 0x000055555559bae6 vulkaninfo`_start + 22
(lldb) continue
Process 6423 resuming
Process 6423 exited with status = 11 (0x0000000b)
(lldb) exit
And here for lldb x86_64-vulkaninfo:
Code: Select all
(lldb) target create "x86_64-pc-linux-musl-vulkaninfo"
Current executable set to '/usr/bin/x86_64-pc-linux-musl-vulkaninfo' (x86_64).
(lldb) run
Process 6483 launched: '/usr/bin/x86_64-pc-linux-musl-vulkaninfo' (x86_64)
Process 6483 stopped
* thread #1, name = 'x86_64-pc-linux', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x0)
frame #0: 0x00007ffff7c1b9a0 libvulkan_nouveau.so`__malloc_alloc_meta + 96
libvulkan_nouveau.so`__malloc_alloc_meta:
-> 0x7ffff7c1b9a0 <+96>: movq -0x8(%rax,%r14), %rcx
0x7ffff7c1b9a5 <+101>: cmpq $0x19, %rcx
0x7ffff7c1b9a9 <+105>: je 0x7ffff7c1b980 ; <+64>
0x7ffff7c1b9ab <+107>: testq %rcx, %rcx
(lldb) bt all
* thread #1, name = 'x86_64-pc-linux', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x0)
* frame #0: 0x00007ffff7c1b9a0 libvulkan_nouveau.so`__malloc_alloc_meta + 96
frame #1: 0x00007ffff7c1c1a2 libvulkan_nouveau.so`alloc_slot + 418
frame #2: 0x00007ffff7c1bde3 libvulkan_nouveau.so`__libc_malloc_impl + 419
frame #3: 0x00007ffff7a1e0b7 libvulkan_nouveau.so`ralloc_size(ctx=0x0000000000000000, size=<unavailable>) at ralloc.c:118:18 [inlined]
frame #4: 0x00007ffff7a1e0aa libvulkan_nouveau.so`rzalloc_size(ctx=0x0000000000000000, size=<unavailable>) at ralloc.c:152:16
frame #5: 0x00007ffff7a1ab2b libvulkan_nouveau.so`_mesa_hash_table_u64_create(mem_ctx=<unavailable>) at hash_table.c:892:9
frame #6: 0x00007ffff7a2630c libvulkan_nouveau.so`u_printf_singleton_init_or_ref at u_printf.c:392:27
frame #7: 0x00007ffff758792f libvulkan_nouveau.so`(anonymous namespace)::vtn_bindgen_dummy::vtn_bindgen_dummy(this=<unavailable>) at nvkcl.cpp:318:10
frame #8: 0x00007ffff7587922 libvulkan_nouveau.so`__cxx_global_var_init at nvkcl.cpp:327:29 [inlined]
frame #9: 0x00007ffff7587922 libvulkan_nouveau.so`_GLOBAL__sub_I_nvkcl.cpp at nvkcl.cpp:0
frame #10: 0x00007ffff7ff3878 libc.so`do_init_fini(queue=0x00007ffff7ffbf10) at dynlink.c:1610:16
frame #11: 0x00007ffff7ff6693 libc.so`dlopen(file=<unavailable>, mode=1) at dynlink.c:2223:3
frame #12: 0x00007ffff7d8dd4c libvulkan.so.1`loader_platform_open_library(libPath="/usr/lib/libvulkan_nouveau.so") at vk_loader_platform.h:414:12 [inlined]
frame #13: 0x00007ffff7d8dd3f libvulkan.so.1`loader_scanned_icd_add(inst=0x0000000000000000, icd_tramp_list=0x00007ffff7db3ab0, filename=<unavailable>, api_version=<unavailable>, lib_status=<unavailable>) at loader.c:2096:14
frame #14: 0x00007ffff7d8e756 libvulkan.so.1`loader_icd_scan(inst=0x0000000000000000, icd_tramp_list=0x00007ffff7db3ab0, pCreateInfo=0x0000000000000000, skipped_portability_drivers=0x0000000000000000) at loader.c:4156:13
frame #15: 0x00007ffff7d8e440 libvulkan.so.1`loader_preload_icds at loader.c:2356:23
frame #16: 0x00007ffff7d940df libvulkan.so.1`terminator_EnumerateInstanceExtensionProperties(pLayerName=0x0000000000000000, pPropertyCount=0x00007fffffffd28c, pProperties=0x00007ffff7d0f350) at loader.c:7574:9
frame #17: 0x00007ffff7d9eab9 libvulkan.so.1`vkEnumerateInstanceExtensionProperties(pLayerName=0x0000000000000000, pPropertyCount=0x00007fffffffd28c, pProperties=0x00007ffff7d0f350) at trampoline.c:240:15
frame #18: 0x0000555555687e00 x86_64-pc-linux-musl-vulkaninfo`std::__1::vector<VkExtensionProperties, std::__1::allocator<VkExtensionProperties>> GetVectorInit<VkExtensionProperties, VkResult (*&)(char const*, unsigned int*, VkExtensionProperties*), char const*&>(func_name="vkEnumerateInstanceExtensionProperties", f=(x86_64-pc-linux-musl-vulkaninfo`vkEnumerateInstanceExtensionProperties), init=(extensionName = "", specVersion = 0), ts=<no value available>) at vulkaninfo.h:243:15
frame #19: 0x00005555556869d1 x86_64-pc-linux-musl-vulkaninfo`std::__1::vector<VkExtensionProperties, std::__1::allocator<VkExtensionProperties>> GetVector<VkExtensionProperties, VkResult (*&)(char const*, unsigned int*, VkExtensionProperties*), char const*&>(func_name=<unavailable>, f=<unavailable>, ts=<no value available>) at vulkaninfo.h:253:12 [inlined]
frame #20: 0x0000555555686936 x86_64-pc-linux-musl-vulkaninfo`AppInstance::AppGetGlobalLayerExtensions(this=0x00007fffffffdb10, layer_name=0x0000000000000000) at vulkaninfo.h:720:16 [inlined]
frame #21: 0x0000555555686936 x86_64-pc-linux-musl-vulkaninfo`AppInstance::AppGetInstanceExtensions(this=0x00007fffffffdb10) at vulkaninfo.h:612:29
frame #22: 0x000055555567bc3a x86_64-pc-linux-musl-vulkaninfo`AppInstance::AppInstance(this=0x00007fffffffdb10) at vulkaninfo.h:539:9
frame #23: 0x000055555564818e x86_64-pc-linux-musl-vulkaninfo`main(argc=1, argv=0x00007fffffffe028) at vulkaninfo.cpp:1301:32
frame #24: 0x00007ffff7f99dba libc.so`libc_start_main_stage2(main=(x86_64-pc-linux-musl-vulkaninfo`main at vulkaninfo.cpp:1254), argc=<unavailable>, argv=0x00007fffffffe028) at __libc_start_main.c:95:7
frame #25: 0x000055555559bae6 x86_64-pc-linux-musl-vulkaninfo`_start + 22
(lldb) continue
Process 6483 resuming
Process 6483 exited with status = 11 (0x0000000b)
(lldb) exit
What hits my eye still is
Code: Select all
ralloc_size(ctx=0x0000000000000000)
. As far as iam aware, drivers shouldnt try to allocate memory using a null context (i may be wrong though).