我有一個似乎掛在solaris上的進程,我試圖附加到使用GDB的進程,看看它在做什麼,但沒有運氣。Solaris SPARC:如何查看懸掛進程在做什麼?
沒有錯誤,從我所看到的,它只是坐在那裏......
有沒有我可以用它來看看有什麼進程停留在任何其他工具或技術?
感謝您的幫助
林頓
我有一個似乎掛在solaris上的進程,我試圖附加到使用GDB的進程,看看它在做什麼,但沒有運氣。Solaris SPARC:如何查看懸掛進程在做什麼?
沒有錯誤,從我所看到的,它只是坐在那裏......
有沒有我可以用它來看看有什麼進程停留在任何其他工具或技術?
感謝您的幫助
林頓
使用強大的DTrace工具。 這裏簡短的introduction如何跟蹤用戶進程。
pstack <pid>
將打印您這個過程中的所有線程都在做什麼(全堆棧跟蹤,包括函數名,如果你的二進制文件,不會被剝離。
truss
就是Linux的strace
等價的。它會顯示所有的系統調用該過程正在進行,它可能會幫助你進行調試
DTrace是一個偉大的調試瑞士軍刀,它可以向你展示幾乎所有你能想到的東西,缺點是它需要用root全球區域的權限,需要一些時間來學習,但是值得花時間去研究。
爲什麼GDB無法附加進程? –