2016-09-15 810 views
5

一個Python過程中futex的掛起():見futex的掛Python中的堆棧跟蹤(...,FUTEX_WAIT_BITSET_PRIVATE | ...)

[email protected]:~# strace -p 9042 
strace: Process 9042 attached 
futex(0x1e61900, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, ffffffff 

我想看看掛過程中的堆棧跟蹤。

不幸的是CTRL-C不:-(

如何查看堆棧跟蹤Python是否掛着這樣?

+0

只是gdb連接到這個過程中,或者如果您已經安裝它的pstack運行。或者'殺死-SEGV'這個過程並且檢查覈心,如果你不需要保存它的話。 – Useless

+0

@無用我想查看Python代碼的堆棧跟蹤。不是Python解釋器(c代碼)的堆棧跟蹤。我看着pstack,AFAIK pstack打印後者。 – guettli

回答

4
  1. 如果需要爲您的系統(參見here的工作安裝GDB Python擴展例如,或者看看你的發行版的文檔)
  2. gdb連接到您的掛起進程
  3. 運行

    (gdb) py-bt 
    

    代替普通bt得到了Python回溯

+0

從另一個答案中執行'ln -s ...'命令並以root用戶身份運行gdb。這裏的其他答案:http://stackoverflow.com/a/30430059/633961 – guettli