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

Reply via email to