Arun Sharma wrote:
Kyle Galloway wrote:
As I mentioned, I didn't get any debug output, did I do something
wrong trying to set that up?
You need to set UNW_DEBUG_LEVEL when running your test program. For eg:
UNW_DEBUG_LEVEL=16 ./unwinddebug
-Arun
Thanks alot, here is the run on x86_64 with debug info
Enter the PID of the main therad: 20505
Assuming second thread is pid 20506
>_Ux86_64_init_remote: (cursor=0x7ffff0392690)
>_UPT_access_reg: RIP -> 324ebcd176
>_UPT_access_reg: RSP -> 7fffa5ffcd90
>_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x000000324ebcd176)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_64_dwarf_step: returning -10
>_Ux86_64_step: dwarf_step() failed (ret=-10), trying
frame-chain
>_UPT_access_mem: mem[324ebcd176] -> 145e840f0ef88366
>_UPT_access_mem: mem[324ebcd17e] -> 840f0af883660000
>_UPT_access_reg: RBP -> 7fffa5ffcee0
>_Ux86_64_step: [RBP=0x6] = 0x7fffa5ffcee0 (cfa = 0x7fffa5ffcd90)
>_UPT_access_mem: mem[7fffa5ffcee0] -> 7fffa5ffcf40
>_UPT_access_mem: mem[7fffa5ffcee8] -> 324f0f09cf
>_Ux86_64_step: Frame Chain [RIP=0x7fffa5ffcee8] = 0x324f0f09cf
>_Ux86_64_step: returning 1
>_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x000000324f0f09cf)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_64_dwarf_step: returning -10
>_Ux86_64_step: dwarf_step() failed (ret=-10), trying
frame-chain
>_UPT_access_mem: mem[324f0f09cf] -> 4334864d0458b48
>_UPT_access_mem: mem[324f0f09d7] -> 4816750000002825
>_UPT_access_mem: mem[7fffa5ffcee0] -> 7fffa5ffcf40
>_Ux86_64_step: [RBP=0x7fffa5ffcee0] = 0x7fffa5ffcf40 (cfa =
0x7fffa5ffcda0)
>_UPT_access_mem: mem[7fffa5ffcf40] -> 7fffa5ffd010
>_UPT_access_mem: mem[7fffa5ffcf48] -> 324f0f0fa6
>_Ux86_64_step: Frame Chain [RIP=0x7fffa5ffcf48] = 0x324f0f0fa6
>_Ux86_64_step: returning 1
>_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x000000324f0f0fa6)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_64_dwarf_step: returning -10
>_Ux86_64_step: dwarf_step() failed (ret=-10), trying
frame-chain
>_UPT_access_mem: mem[324f0f0fa6] -> 14334864c8558b48
>_UPT_access_mem: mem[324f0f0fae] -> ac458b0000002825
>_UPT_access_mem: mem[7fffa5ffcf40] -> 7fffa5ffd010
>_Ux86_64_step: [RBP=0x7fffa5ffcf40] = 0x7fffa5ffd010 (cfa =
0x7fffa5ffcdb0)
>_UPT_access_mem: mem[7fffa5ffd010] -> 7fffa5ffd0f0
>_UPT_access_mem: mem[7fffa5ffd018] -> 324f0f17e8
>_Ux86_64_step: Frame Chain [RIP=0x7fffa5ffd018] = 0x324f0f17e8
>_Ux86_64_step: returning 1
>_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x000000324f0f17e8)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_64_dwarf_step: returning -10
>_Ux86_64_step: dwarf_step() failed (ret=-10), trying
frame-chain
>_UPT_access_mem: mem[324f0f17e8] -> 44000000c8c48148
>_UPT_access_mem: mem[324f0f17f0] -> 19b21d8d4cd0b60f
>_UPT_access_mem: mem[7fffa5ffd010] -> 7fffa5ffd0f0
>_Ux86_64_step: [RBP=0x7fffa5ffd010] = 0x7fffa5ffd0f0 (cfa =
0x7fffa5ffcdc0)
>_UPT_access_mem: mem[7fffa5ffd0f0] -> 0
>_Ux86_64_step: returning 0
>_Ux86_64_init_remote: (cursor=0x7ffff0392690)
>_UPT_access_reg: RIP -> 33a9e09766
>_UPT_access_reg: RSP -> 40a00070
>_Ux86_64_step: (cursor=0x7ffff0392690, ip=0x00000033a9e09766)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_64_dwarf_step: returning -10
>_Ux86_64_step: dwarf_step() failed (ret=-10), trying
frame-chain
>_UPT_access_mem: mem[33a9e09766] -> 2342e8243c8b
>_UPT_access_mem: mem[33a9e0976e] -> 1be08247c8b48
>_UPT_access_reg: RBP -> 324fb4e160
>_Ux86_64_step: [RBP=0x6] = 0x324fb4e160 (cfa = 0x40a00070)
>_UPT_access_mem: mem[324fb4e160] -> 0
>_Ux86_64_step: returning 0
Tracing main thread!
Frames of pid 20505:
found frame 0
found frame 1
found frame 2
found frame 3
Trace Depth = 4
Tracing second thread!
Frames of pid 20506:
found frame 0
Trace Depth = 1
and here is the run on x86
Enter the PID of the main therad: 9269
Assuming second thread is pid 9270
Tracing main thread!
>_Ux86_init_remote: (cursor=0xbfa3613c)
>_UPT_access_reg: eip -> 5ed508a
>_UPT_access_reg: esp -> bfa87874
Frames of pid 9269:
found frame 0
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05ed508a)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5ed508a] -> 9dc078e8
>_UPT_access_mem: mem[5ed508e] -> 65c381ff
>_Ux86_is_signal_frame: returning 0
>_UPT_access_reg: ebp -> bfa8788c
>_Ux86_step: [EBP=0x6] = 0xbfa8788c
>_UPT_access_mem: mem[bfa87890] -> 5ed5201
>_Ux86_step: returning 1
found frame 1
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05ed5201)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5ed5201] -> ff08c483
>_UPT_access_mem: mem[5ed5205] -> 4d8b1c55
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa8788c] -> bfa878a0
>_Ux86_step: [EBP=0xbfa8788c] = 0xbfa878a0
>_UPT_access_mem: mem[bfa878a4] -> 5ed4fa4
>_Ux86_step: returning 1
found frame 2
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05ed4fa4)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5ed4fa4] -> 418bbaeb
>_UPT_access_mem: mem[5ed4fa8] -> 7883660c
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa878a0] -> bfa878e0
>_Ux86_step: [EBP=0xbfa878a0] = 0xbfa878e0
>_UPT_access_mem: mem[bfa878e4] -> 58cac64
>_Ux86_step: returning 1
found frame 3
>_Ux86_step: (cursor=0xbfa3613c, ip=0x058cac64)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58cac64] -> f0c468b
>_UPT_access_mem: mem[58cac68] -> 660640b7
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa878e0] -> bfa87d70
>_Ux86_step: [EBP=0xbfa878e0] = 0xbfa87d70
>_UPT_access_mem: mem[bfa87d74] -> 58cdb0a
>_Ux86_step: returning 1
found frame 4
>_Ux86_step: (cursor=0xbfa3613c, ip=0x058cdb0a)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58cdb0a] -> 14245c8b
>_UPT_access_mem: mem[58cdb0e] -> 1824748b
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa87d70] -> bfa87dc0
>_Ux86_step: [EBP=0xbfa87d70] = 0xbfa87dc0
>_UPT_access_mem: mem[bfa87dc4] -> 5ed5207
>_Ux86_step: returning 1
found frame 5
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05ed5207)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5ed5207] -> 1104d8b
>_UPT_access_mem: mem[5ed520b] -> 144d8bcc
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa87dc0] -> bfa87dc8
>_Ux86_step: [EBP=0xbfa87dc0] = 0xbfa87dc8
>_UPT_access_mem: mem[bfa87dcc] -> 5ed4fa4
>_Ux86_step: returning 1
found frame 6
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05ed4fa4)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5ed4fa4] -> 418bbaeb
>_UPT_access_mem: mem[5ed4fa8] -> 7883660c
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa87dc8] -> bfa87e08
>_Ux86_step: [EBP=0xbfa87dc8] = 0xbfa87e08
>_UPT_access_mem: mem[bfa87e0c] -> 58cac64
>_Ux86_step: returning 1
found frame 7
>_Ux86_step: (cursor=0xbfa3613c, ip=0x058cac64)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58cac64] -> f0c468b
>_UPT_access_mem: mem[58cac68] -> 660640b7
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa87e08] -> bfa88268
>_Ux86_step: [EBP=0xbfa87e08] = 0xbfa88268
>_UPT_access_mem: mem[bfa8826c] -> 58cdb0a
>_Ux86_step: returning 1
found frame 8
>_Ux86_step: (cursor=0xbfa3613c, ip=0x058cdb0a)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58cdb0a] -> 14245c8b
>_UPT_access_mem: mem[58cdb0e] -> 1824748b
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa88268] -> bfa882b8
>_Ux86_step: [EBP=0xbfa88268] = 0xbfa882b8
>_UPT_access_mem: mem[bfa882bc] -> 58e1934
>_Ux86_step: returning 1
found frame 9
>_Ux86_step: (cursor=0xbfa3613c, ip=0x058e1934)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58e1934] -> fbf447e8
>_UPT_access_mem: mem[58e1938] -> 1c838bff
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[bfa882b8] -> 62e38
>_Ux86_step: [EBP=0xbfa882b8] = 0x62e38
>_UPT_access_mem: mem[62e3c] -> 4ed20
>_Ux86_step: returning 1
found frame 10
>_Ux86_step: (cursor=0xbfa3613c, ip=0x0004ed20)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[4ed20] -> 62ce8c8
>_UPT_access_mem: mem[4ed24] -> 0
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[62e38] -> 6212388
>_Ux86_step: [EBP=0x62e38] = 0x6212388
>_UPT_access_mem: mem[621238c] -> f1780001
>_Ux86_step: returning 1
found frame 11
>_Ux86_step: (cursor=0xbfa3613c, ip=0xf1780001)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[6212394] -> 58ec360
>_UPT_access_mem: mem[6212398] -> 58dcaa0
>_UPT_access_mem: mem[62123b0] -> 5afad40
>_UPT_access_mem: mem[62123cc] -> 5aefbc0
>_Ux86_step: returning 1
found frame 12
>_Ux86_step: (cursor=0xbfa3613c, ip=0x05aefbc0)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[5aefbc0] -> 424448b
>_UPT_access_mem: mem[5aefbc4] -> 1040b60f
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[62123ac] -> 58f0a30
>_Ux86_step: [EBP=0x62123ac] = 0x58f0a30
>_UPT_access_mem: mem[58f0a34] -> e810245c
>_Ux86_step: returning 1
found frame 13
>_Ux86_step: (cursor=0xbfa3613c, ip=0xe810245c)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[58f0a3c] -> bbb8c381
>_UPT_access_mem: mem[58f0a40] -> 7489008e
>_UPT_access_mem: mem[58f0a58] -> e8240489
>_UPT_access_mem: mem[58f0a74] -> 489c689
>_Ux86_step: returning 1
found frame 14
>_Ux86_step: (cursor=0xbfa3613c, ip=0x0489c689)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_Ux86_step: returning 0
Trace Depth = 15
Tracing second thread!
>_Ux86_init_remote: (cursor=0xbfa3613c)
>_UPT_access_reg: eip -> b69402
>_UPT_access_reg: esp -> b7dab32c
Frames of pid 9270:
found frame 0
>_Ux86_step: (cursor=0xbfa3613c, ip=0x00b69402)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[b69402] -> 909090c3
>_UPT_access_mem: mem[b69406] -> 90909090
>_Ux86_is_signal_frame: returning 0
>_UPT_access_reg: ebp -> 8484f38
>_Ux86_step: [EBP=0x6] = 0x8484f38
>_UPT_access_mem: mem[8484f3c] -> b7dabba0
>_Ux86_step: returning 1
found frame 1
>_Ux86_step: (cursor=0xbfa3613c, ip=0xb7dabba0)
>_UPT_get_dyn_info_list_addr: looking for dyn_info list
>_Ux86_dwarf_step: returning -10
>_Ux86_step: dwarf_step() failed (ret=-10), trying frame-chain
>_UPT_access_mem: mem[b7dabba0] -> b7dabba0
>_UPT_access_mem: mem[b7dabba4] -> 8484fa0
>_Ux86_is_signal_frame: returning 0
>_UPT_access_mem: mem[8484f38] -> 3
>_Ux86_step: [EBP=0x8484f38] = 0x3
>_Ux86_step: returning -8
Step Error: -8
Trace Depth = 2
Again, thanks for the help,
Kyle
_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel