मुझे GDB में सभी थ्रेड्स के लिए बैकट्रेस कैसे मिलेगा?


151

WinDbg के "प्रक्रिया 0 7" के लिए GDB में एक समान कमांड है?

मैं GDB में उनके बैकट्रैक के साथ डंप फ़ाइल में सभी थ्रेड्स निकालना चाहता हूं। "जानकारी थ्रेड्स" स्टैक के निशान को आउटपुट नहीं करता है। तो, वहाँ एक आदेश है कि करता है?


13
एलएलडीबी के लिए संबंधित कमांड हैbt all - अगर किसी को यह Google के माध्यम से मिला (जो सोचता है कि GDB == LLDB है)।
केनेमेटम

अजगर के साथ निम्नलिखित काम करता है "(gdb) python for धागा में gdb.selected_inferior ()। थ्रेड्स (): thread.switch (); प्रिंट (thread.num); gbb.execute ('जहां')"
Talespin_Kit

जवाबों:


244

आमतौर पर, बैकट्रेस का उपयोग वर्तमान थ्रेड के स्टैक को प्राप्त करने के लिए किया जाता है, लेकिन यदि सभी थ्रेड्स के स्टैक ट्रेस प्राप्त करने के लिए कोई आवश्यकता है, तो निम्न कमांड का उपयोग करें।

thread apply all bt

12
आउटपुट को किसी फ़ाइल में सहेजने के लिए:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday

1
आप इसे छोटा कर सकते हैंt a a bt
क्यूबेक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.