जवाबों:
info locals
- सभी स्थानीय चर देखें; सूची - स्रोत देखें; नियमित अभिव्यक्ति से मेल खाने वाले समारोह पर ब्रेक।
set print object on
पॉलीमॉर्फिक तत्वों के लिए और set print elements 0
दो कमांड हैं जिनका मैं बहुत बार उपयोग करता हूं। बहुत उपयोगी है।
t a a bt
(अर्थ thread apply all backtrace
)। (लगभग) सभी अन्य कमांड के साथ इस्तेमाल किया जा सकता है। विशेष रूप से उपयोगी है bt full
।
टेक्स्ट यूजर इंटरफेस के साथ gdb शुरू करें
gdb -tui
Gdb 7.0 में शुरू, प्रतिवर्ती डिबगिंग है , इसलिए आपकी नई पसंदीदा कमांड हैं:
* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.
"-Tui" परम के साथ GDB को लॉन्च करने के बजाय आप "wh" टाइप करके कुछ समय बाद टेक्स्ट मोड पर भी स्विच कर सकते हैं।
Ctrl-a a
? क्या यह मज़ाक हैं? अधिक tmux
/ screen
कमांड की तरह दिखता है । और मेरे लिए काम नहीं करता है। यह से एक होना चाहिए के रूप में प्रति डॉक्स : C-x C-a
, C-x a
, C-x A
।
C-x a
। तुम भी साथ दृश्य स्विच कर सकते C-x 1
हैं और C-x 2
जब टुइ मोड में देखने के लिए विधानसभा के साथ-साथ (यदि आवश्यकता हुई)।
उदाहरण के लिए stros-views.gdb में परिभाषित मैक्रोज़
-command=<file with gdb commands>
Gdb फायरिंग करते समय विकल्प का उपयोग करना । के रूप में ही -x <command file>
। इस कमांड फाइल में gdb कमांड हो सकते हैं जैसे ब्रेकपॉइंट, विकल्प आदि, विशेष रूप से निष्पादन योग्य जरूरतों के लिए जब gdb का उपयोग करके क्रमिक डिबग रन के माध्यम से रखा जाना चाहिए।
-iex
gdb कमांड लाइन पर अलग-अलग कमांड जोड़ने के विकल्प का भी उपयोग कर सकते हैं ।
स्क्रिप्टिंग gdb एक अच्छी ट्रिक है, इसके अलावा, जब मैं एक में कदम रख रहा हूं तो अन्य थ्रेड्स को चलाने से रोकने के लिए मुझे शेड्यूलर लॉक ऑन / ऑफ करना पसंद है।
set scheduler-locking on
अंदर gdb
सभी सक्रिय थ्रेड्स को सूचीबद्ध करने के लिए जानकारी थ्रेड्स , और f (#) -> # थ्रेड नंबर जिसे आप स्विच करना चाहते हैं
कभी-कभी मैं gdb का उपयोग हेक्स से दशमलव या बाइनरी में परिवर्तित करने के लिए करता हूं, इसकी गणना कैलकुलेटर खोलने के बजाय बहुत आसान है
चाइल्ड प्रोसेस देखने के लिए विकल्प -tui के साथ gdb शुरू करने के बजाय, जिसमें एक स्क्रीन होती है जिसमें हाइलाइट होता है जहां कोड की एक्ज़ीक्यूटिंग लाइन आपके प्रोग्राम में होती है, इस फ़ीचर से Cx o और Cx a में कूदें। यह उपयोगी है यदि आप सुविधा का उपयोग कर रहे हैं और अस्थायी रूप से इसका उपयोग नहीं करते हैं तो आप पिछले कमांड को प्राप्त करने के लिए अप-एरो का उपयोग कर सकते हैं।
focus cmd
ताकि ऊपर / नीचे तीर काम कर सकें। आप का उपयोग कर वापस स्विच focus src
।
STL को डीबग करने के लिए, .gdbinit में सामग्री जोड़ें, इन निर्देशों का पालन करें: