[Mesa-dev] [Bug 99591] Segmentation fault when running vulkaninfo with RADV Radeon Vulkan driver

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Mar 11 00:29:17 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=99591

--- Comment #5 from Jure Repinc <jlp.bugs at gmail.com> ---
I'm not sure if this helps but here is some steping by instructions in GDB:

Temporary breakpoint 6, main () at main.cpp:82
82          HelloTriangleApplication app;
(gdb) c
Continuing.

Breakpoint 3, radv_lookup_entrypoint (name=0x7ffff5dcdd00 "vkCreateInstance")
at radv_entrypoints.c:933
933        if (strcmp(name, strings + e->name) != 0)
(gdb) where
#0  radv_lookup_entrypoint (name=0x7ffff5dcdd00 "vkCreateInstance") at
radv_entrypoints.c:933
#1  0x00007ffff5db3616 in loader_scanned_icd_add (api_version=4194307,
filename=0x7fffffffd590 "/usr/lib64/libvulkan_radeon.so",
icd_tramp_list=0x7fffffffda20, 
    inst=0x0) at
/usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/loader.c:1565
#2  loader_icd_scan (inst=inst at entry=0x0,
icd_tramp_list=icd_tramp_list at entry=0x7fffffffda20)
    at
/usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/loader.c:3177
#3  0x00007ffff5dbc317 in vkEnumerateInstanceExtensionProperties
(pLayerName=0x0, pPropertyCount=0x7fffffffda84, pProperties=0x0)
    at
/usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/trampoline.c:159
#4  0x00007ffff7bc62cd in _glfwInitVulkan () at
/usr/src/debug/glfw-3.2.1/src/vulkan.c:82
#5  0x00007ffff7bc65ca in _glfwInitVulkan () at
/usr/src/debug/glfw-3.2.1/src/vulkan.c:228
#6  glfwGetRequiredInstanceExtensions (count=0x7fffffffdb2c) at
/usr/src/debug/glfw-3.2.1/src/vulkan.c:220
#7  0x00000000004018b2 in HelloTriangleApplication::createInstance
(this=0x7fffffffdc20) at main.cpp:60
#8  0x00000000004017d2 in HelloTriangleApplication::initVulkan
(this=0x7fffffffdc20) at main.cpp:34
#9  0x000000000040174e in HelloTriangleApplication::run (this=0x7fffffffdc20)
at main.cpp:18
#10 0x0000000000401597 in main () at main.cpp:85
(gdb) dis
disable      disassemble  disconnect   display      
(gdb) dis
disable      disassemble  disconnect   display      
(gdb) disassemble 
Dump of assembler code for function radv_lookup_entrypoint:
   0x00007ffff3976b60 <+0>:     push   %rbx
   0x00007ffff3976b61 <+1>:     movsbl (%rdi),%edx
   0x00007ffff3976b64 <+4>:     test   %dl,%dl
   0x00007ffff3976b66 <+6>:     je     0x7ffff3976bee
<radv_lookup_entrypoint+142>
   0x00007ffff3976b6c <+12>:    mov    %rdi,%rcx
   0x00007ffff3976b6f <+15>:    xor    %eax,%eax
   0x00007ffff3976b71 <+17>:    nopl   0x0(%rax)
   0x00007ffff3976b78 <+24>:    imul   $0x4ca9b7,%eax,%eax
   0x00007ffff3976b7e <+30>:    add    $0x1,%rcx
   0x00007ffff3976b82 <+34>:    add    %edx,%eax
   0x00007ffff3976b84 <+36>:    movsbl (%rcx),%edx
   0x00007ffff3976b87 <+39>:    test   %dl,%dl
   0x00007ffff3976b89 <+41>:    jne    0x7ffff3976b78
<radv_lookup_entrypoint+24>
   0x00007ffff3976b8b <+43>:    lea    0xce38e(%rip),%rcx        #
0x7ffff3a44f20 <map>
   0x00007ffff3976b92 <+50>:    movzbl %al,%edx
   0x00007ffff3976b95 <+53>:    movzwl (%rcx,%rdx,2),%ebx
   0x00007ffff3976b99 <+57>:    mov    %eax,%edx
   0x00007ffff3976b9b <+59>:    lea    0xce57e(%rip),%rsi        #
0x7ffff3a45120 <entrypoints>
   0x00007ffff3976ba2 <+66>:    lea    0xce377(%rip),%r8        #
0x7ffff3a44f20 <map>
   0x00007ffff3976ba9 <+73>:    jmp    0x7ffff3976bc3
<radv_lookup_entrypoint+99>
   0x00007ffff3976bab <+75>:    nopl   0x0(%rax,%rax,1)
   0x00007ffff3976bb0 <+80>:    mov    %ebx,%ecx
   0x00007ffff3976bb2 <+82>:    add    $0x13,%edx
   0x00007ffff3976bb5 <+85>:    cmp    0x4(%rsi,%rcx,8),%eax
   0x00007ffff3976bb9 <+89>:    je     0x7ffff3976bd0
<radv_lookup_entrypoint+112>
   0x00007ffff3976bbb <+91>:    movzbl %dl,%ecx
   0x00007ffff3976bbe <+94>:    movzwl (%r8,%rcx,2),%ebx
   0x00007ffff3976bc3 <+99>:    cmp    $0xffff,%ebx
   0x00007ffff3976bc9 <+105>:   jne    0x7ffff3976bb0
<radv_lookup_entrypoint+80>
   0x00007ffff3976bcb <+107>:   xor    %eax,%eax
   0x00007ffff3976bcd <+109>:   pop    %rbx
   0x00007ffff3976bce <+110>:   retq   
   0x00007ffff3976bcf <+111>:   nop
=> 0x00007ffff3976bd0 <+112>:   mov    (%rsi,%rcx,8),%esi
   0x00007ffff3976bd3 <+115>:   lea    0xceb26(%rip),%rax        #
0x7ffff3a45700 <strings>
   0x00007ffff3976bda <+122>:   add    %rax,%rsi
   0x00007ffff3976bdd <+125>:   callq  0x7ffff3974dc0 <strcmp at plt>
   0x00007ffff3976be2 <+130>:   test   %eax,%eax
   0x00007ffff3976be4 <+132>:   jne    0x7ffff3976bcb
<radv_lookup_entrypoint+107>
   0x00007ffff3976be6 <+134>:   mov    %ebx,%edi
---Type <return> to continue, or q <return> to quit---
   0x00007ffff3976be8 <+136>:   pop    %rbx
   0x00007ffff3976be9 <+137>:   jmpq   0x7ffff3976b50 <radv_resolve_entrypoint>
   0x00007ffff3976bee <+142>:   mov    $0x44,%ebx
   0x00007ffff3976bf3 <+147>:   xor    %eax,%eax
   0x00007ffff3976bf5 <+149>:   jmp    0x7ffff3976b99
<radv_lookup_entrypoint+57>
End of assembler dump.
(gdb) c
Continuing.

Breakpoint 3, radv_lookup_entrypoint (name=0x7ffff5dd0640
"vkEnumerateInstanceExtensionProperties") at radv_entrypoints.c:933
933        if (strcmp(name, strings + e->name) != 0)
(gdb) disassemble 
Dump of assembler code for function radv_lookup_entrypoint:
   0x00007ffff3976b60 <+0>:     push   %rbx
   0x00007ffff3976b61 <+1>:     movsbl (%rdi),%edx
   0x00007ffff3976b64 <+4>:     test   %dl,%dl
   0x00007ffff3976b66 <+6>:     je     0x7ffff3976bee
<radv_lookup_entrypoint+142>
   0x00007ffff3976b6c <+12>:    mov    %rdi,%rcx
   0x00007ffff3976b6f <+15>:    xor    %eax,%eax
   0x00007ffff3976b71 <+17>:    nopl   0x0(%rax)
   0x00007ffff3976b78 <+24>:    imul   $0x4ca9b7,%eax,%eax
   0x00007ffff3976b7e <+30>:    add    $0x1,%rcx
   0x00007ffff3976b82 <+34>:    add    %edx,%eax
   0x00007ffff3976b84 <+36>:    movsbl (%rcx),%edx
   0x00007ffff3976b87 <+39>:    test   %dl,%dl
   0x00007ffff3976b89 <+41>:    jne    0x7ffff3976b78
<radv_lookup_entrypoint+24>
   0x00007ffff3976b8b <+43>:    lea    0xce38e(%rip),%rcx        #
0x7ffff3a44f20 <map>
   0x00007ffff3976b92 <+50>:    movzbl %al,%edx
   0x00007ffff3976b95 <+53>:    movzwl (%rcx,%rdx,2),%ebx
   0x00007ffff3976b99 <+57>:    mov    %eax,%edx
   0x00007ffff3976b9b <+59>:    lea    0xce57e(%rip),%rsi        #
0x7ffff3a45120 <entrypoints>
   0x00007ffff3976ba2 <+66>:    lea    0xce377(%rip),%r8        #
0x7ffff3a44f20 <map>
   0x00007ffff3976ba9 <+73>:    jmp    0x7ffff3976bc3
<radv_lookup_entrypoint+99>
   0x00007ffff3976bab <+75>:    nopl   0x0(%rax,%rax,1)
   0x00007ffff3976bb0 <+80>:    mov    %ebx,%ecx
   0x00007ffff3976bb2 <+82>:    add    $0x13,%edx
   0x00007ffff3976bb5 <+85>:    cmp    0x4(%rsi,%rcx,8),%eax
   0x00007ffff3976bb9 <+89>:    je     0x7ffff3976bd0
<radv_lookup_entrypoint+112>
   0x00007ffff3976bbb <+91>:    movzbl %dl,%ecx
   0x00007ffff3976bbe <+94>:    movzwl (%r8,%rcx,2),%ebx
   0x00007ffff3976bc3 <+99>:    cmp    $0xffff,%ebx
   0x00007ffff3976bc9 <+105>:   jne    0x7ffff3976bb0
<radv_lookup_entrypoint+80>
   0x00007ffff3976bcb <+107>:   xor    %eax,%eax
   0x00007ffff3976bcd <+109>:   pop    %rbx
   0x00007ffff3976bce <+110>:   retq   
   0x00007ffff3976bcf <+111>:   nop
=> 0x00007ffff3976bd0 <+112>:   mov    (%rsi,%rcx,8),%esi
   0x00007ffff3976bd3 <+115>:   lea    0xceb26(%rip),%rax        #
0x7ffff3a45700 <strings>
   0x00007ffff3976bda <+122>:   add    %rax,%rsi
   0x00007ffff3976bdd <+125>:   callq  0x7ffff3974dc0 <strcmp at plt>
   0x00007ffff3976be2 <+130>:   test   %eax,%eax
   0x00007ffff3976be4 <+132>:   jne    0x7ffff3976bcb
<radv_lookup_entrypoint+107>
   0x00007ffff3976be6 <+134>:   mov    %ebx,%edi
---Type <return> to continue, or q <return> to quit---
   0x00007ffff3976be8 <+136>:   pop    %rbx
   0x00007ffff3976be9 <+137>:   jmpq   0x7ffff3976b50 <radv_resolve_entrypoint>
   0x00007ffff3976bee <+142>:   mov    $0x44,%ebx
   0x00007ffff3976bf3 <+147>:   xor    %eax,%eax
   0x00007ffff3976bf5 <+149>:   jmp    0x7ffff3976b99
<radv_lookup_entrypoint+57>
End of assembler dump.
(gdb) c
Continuing.

Breakpoint 3, radv_lookup_entrypoint (name=0x7ffff5dcdd00 "vkCreateInstance")
at radv_entrypoints.c:933
933        if (strcmp(name, strings + e->name) != 0)
(gdb) disassemble 
Dump of assembler code for function radv_lookup_entrypoint:
   0x00007fffed19cb60 <+0>:     push   %rbx
   0x00007fffed19cb61 <+1>:     movsbl (%rdi),%edx
   0x00007fffed19cb64 <+4>:     test   %dl,%dl
   0x00007fffed19cb66 <+6>:     je     0x7fffed19cbee
<radv_lookup_entrypoint+142>
   0x00007fffed19cb6c <+12>:    mov    %rdi,%rcx
   0x00007fffed19cb6f <+15>:    xor    %eax,%eax
   0x00007fffed19cb71 <+17>:    nopl   0x0(%rax)
   0x00007fffed19cb78 <+24>:    imul   $0x4ca9b7,%eax,%eax
   0x00007fffed19cb7e <+30>:    add    $0x1,%rcx
   0x00007fffed19cb82 <+34>:    add    %edx,%eax
   0x00007fffed19cb84 <+36>:    movsbl (%rcx),%edx
   0x00007fffed19cb87 <+39>:    test   %dl,%dl
   0x00007fffed19cb89 <+41>:    jne    0x7fffed19cb78
<radv_lookup_entrypoint+24>
   0x00007fffed19cb8b <+43>:    lea    0xce38e(%rip),%rcx        #
0x7fffed26af20 <map>
   0x00007fffed19cb92 <+50>:    movzbl %al,%edx
   0x00007fffed19cb95 <+53>:    movzwl (%rcx,%rdx,2),%ebx
   0x00007fffed19cb99 <+57>:    mov    %eax,%edx
   0x00007fffed19cb9b <+59>:    lea    0xce57e(%rip),%rsi        #
0x7fffed26b120 <entrypoints>
   0x00007fffed19cba2 <+66>:    lea    0xce377(%rip),%r8        #
0x7fffed26af20 <map>
   0x00007fffed19cba9 <+73>:    jmp    0x7fffed19cbc3
<radv_lookup_entrypoint+99>
   0x00007fffed19cbab <+75>:    nopl   0x0(%rax,%rax,1)
   0x00007fffed19cbb0 <+80>:    mov    %ebx,%ecx
   0x00007fffed19cbb2 <+82>:    add    $0x13,%edx
   0x00007fffed19cbb5 <+85>:    cmp    0x4(%rsi,%rcx,8),%eax
   0x00007fffed19cbb9 <+89>:    je     0x7fffed19cbd0
<radv_lookup_entrypoint+112>
   0x00007fffed19cbbb <+91>:    movzbl %dl,%ecx
   0x00007fffed19cbbe <+94>:    movzwl (%r8,%rcx,2),%ebx
   0x00007fffed19cbc3 <+99>:    cmp    $0xffff,%ebx
   0x00007fffed19cbc9 <+105>:   jne    0x7fffed19cbb0
<radv_lookup_entrypoint+80>
   0x00007fffed19cbcb <+107>:   xor    %eax,%eax
   0x00007fffed19cbcd <+109>:   pop    %rbx
   0x00007fffed19cbce <+110>:   retq   
   0x00007fffed19cbcf <+111>:   nop
=> 0x00007fffed19cbd0 <+112>:   mov    (%rsi,%rcx,8),%esi
   0x00007fffed19cbd3 <+115>:   lea    0xceb26(%rip),%rax        #
0x7fffed26b700 <strings>
   0x00007fffed19cbda <+122>:   add    %rax,%rsi
   0x00007fffed19cbdd <+125>:   callq  0x7fffed19adc0 <strcmp at plt>
   0x00007fffed19cbe2 <+130>:   test   %eax,%eax
   0x00007fffed19cbe4 <+132>:   jne    0x7fffed19cbcb
<radv_lookup_entrypoint+107>
   0x00007fffed19cbe6 <+134>:   mov    %ebx,%edi
---Type <return> to continue, or q <return> to quit---
   0x00007fffed19cbe8 <+136>:   pop    %rbx
   0x00007fffed19cbe9 <+137>:   jmpq   0x7fffed19cb50 <radv_resolve_entrypoint>
   0x00007fffed19cbee <+142>:   mov    $0x44,%ebx
   0x00007fffed19cbf3 <+147>:   xor    %eax,%eax
   0x00007fffed19cbf5 <+149>:   jmp    0x7fffed19cb99
<radv_lookup_entrypoint+57>
End of assembler dump.
(gdb) stepi
0x00007fffed19cbd3      933        if (strcmp(name, strings + e->name) != 0)
(gdb) 
0x00007fffed19cbda      933        if (strcmp(name, strings + e->name) != 0)
(gdb) 
0x00007fffed19cbdd      933        if (strcmp(name, strings + e->name) != 0)
(gdb) 
0x00007fffed19adc0 in strcmp at plt () from /usr/lib64/libvulkan_radeon.so
(gdb) 
0x000000000001ddc6 in ?? ()
(gdb) 

Program received signal SIGSEGV, Segmentation fault.
0x000000000001ddc6 in ?? ()

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170311/e16fc8bd/attachment-0001.html>


More information about the mesa-dev mailing list