2011-08-24 15 views
6

में अनुरेखण documentation for gdb में उपयोग करने के लिए:कैसे GDB

tracepoint सुविधा वर्तमान में केवल दूरस्थ लक्ष्यों के लिए उपलब्ध है। एक डिबगिंग लक्ष्य निर्दिष्ट अनुभाग देखें। इसके अतिरिक्त, आपके दूरस्थ लक्ष्य को पता होना चाहिए कि ट्रेस डेटा कैसे एकत्र किया जाए। यह कार्यक्षमता रिमोट स्टब में लागू की गई है; हालांकि, इस लेखन के रूप में के रूप में जीडीबी समर्थन ट्रेसपॉइंट्स के साथ वितरित स्टब्स में से कोई भी नहीं।

जोर मेरा। मुझे ऐसा स्टब कहां मिल सकता है (डेबियन x86 या x64 पर जीसीसी के साथ संकलित सी/सी ++ कोड के लिए)? या मैं एक बनाने के बारे में कैसे जा सकता हूँ? लेखन स्टब्स पर प्रलेखन केवल धारावाहिक बंदरगाहों के साथ संवाद करने के लिए कार्यों को कार्यान्वित करने का उल्लेख करता है। धन्यवाद!

+0

आप शायद FSF gdb प्रलेखन का उल्लेख होना चाहिए जब लिनक्स पर gdb का उपयोग कर, (ऐसा लगता है कि इस विशेष भाग नहीं बदला है) के रूप में सेब gdb "लंबे समय से बहुत पहले एक समय में" काँटेदार था। – matt

+0

हां, मुझे चेतावनी मिली कि यह मेरे 'जीडीबी' से असमर्थित था और गुगल हो गया, यही वह हुआ, लेकिन यह निश्चित रूप से वर्तमान 'जीडीबी' पर लागू होता है। – Gaius

उत्तर

1

मुझे रिमोट्स के बारे में बहुत कुछ पता नहीं है लेकिन जीडीबी में कुछ लक्ष्य अब ट्रेसपॉइंट्स का समर्थन करते हैं, संभवतः 'सामान्य' जीडीबी जानकारी या शो कमांड का उपयोग करके इसे पाने का एक तरीका है, मुझे यह नहीं मिला। नीचे समर्थित आउटपुट में 'समर्थित = 1', के कारण समर्थित है, यह जीडीबी स्टब तक सीमित नहीं हो सकता है, लेकिन कर्नेल स्टब चालू भी हो रहा है।

$ gdbserver/gdbserver :12345 ~/tests/test & 
$ gdb -quiet 
(gdb) file ~/tests/test 
Reading symbols from /home/ratmice/tests/test...done. 
(gdb) target remote :12345 
Remote debugging using :12345 
Remote debugging from host 127.0.0.1 
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 
Loaded symbols for /lib64/ld-linux-x86-64.so.2 
0x00000035dd600b20 in _start() from /lib64/ld-linux-x86-64.so.2 
Created trace state variable $trace_timestamp for target's variable 1. 
Missing separate debuginfos, use: debuginfo-install glibc-2.13-2.x86_64 
(gdb) interpreter-exec mi2 -trace-status 
^done,supported="1",running="0",frames="0",frames-created="0",buffer-size="5242880",buffer-free="5242880",disconnected="0",circular="0" 
+0

यह कौन सा संस्करण है? मेरे पास कर्नेल 2.6.32-5 पर 'gdb' 7.0.1-डेबियन और' gcc' संस्करण 4.4.5 है। 'tstart' मुझे' gdbserver' के साथ आपके उदाहरण के अनुसार चल रहा है 'लक्ष्य इस कमांड का समर्थन नहीं करता है' देता है। 'दुभाषिया-निष्पादन mi2 -trace-status' मुझे '^ त्रुटि देता है, msg =" अपरिभाषित एमआई कमांड: ट्रेस-स्टेटस "'। धन्यवाद! – Gaius

+1

the -trace-status mi command 7.2 में जोड़ा गया था। – matt