यह है कि मैं क्या करने की कोशिश की है, लेकिन काम नहीं कर लगता है:मैं gdb के अंदर printf के आउटपुट को कैसे देख सकता हूं?
(gdb) call printf("%d",6)
$8 = 1
यह है कि मैं क्या करने की कोशिश की है, लेकिन काम नहीं कर लगता है:मैं gdb के अंदर printf के आउटपुट को कैसे देख सकता हूं?
(gdb) call printf("%d",6)
$8 = 1
आप परिणाम नहीं देख सकते हैं क्योंकि stdout (FILE *) में आउटपुट बफर है। यह तब तक स्क्रीन पर आउटपुट नहीं करेगा जब तक बफर भरा न हो या '\ n' सामना न हो जाए।
तो इस तरह printf फोन:
(gdb) call (int)printf("%d\n", 6)
6
$6 = 2
Btw, "$ 6 = 2" जो printf का परिणाम मान है।
ऐसा लगता है कि यह ठीक काम किया - printf
लौटे 1, यह दर्शाता है कि इसे सफलतापूर्वक मानक आउटपुट में एकल वर्ण मुद्रित।
ध्यान दें कि मानक आउटपुट जरूरी है कि gdb में चल रहा है एक ही टर्मिनल में प्रदर्शित नहीं किया जाता है - यह जहाँ भी कार्यक्रम आप डिबगिंग रहे हैं इसके मानक उत्पादन (यह बस के रूप में करता है, तो कार्यक्रम में ही printf()
बुलाया था है है दिखाए जाने वाले - gdb में call
कमांड प्रोग्राम के संदर्भ में फ़ंक्शन को कॉल करता है)।
जानना अच्छा है! .. –