
Seer - gdb के लिए एक GUI फ्रंटएंड
Seer - Linux के लिए gdb का एक GUI फ्रंटएंड। (Ernie Pasveer [email protected])
यह परियोजना सक्रिय रूप से विकसित की जा रही है। इसका उद्देश्य gdb के लिए एक सरल, फिर भी मनभावन GUI बनाना है।
कृपया किसी भी बग या वांछित सुविधा की रिपोर्ट मेरे ईमेल पर करें या मेरे GitHub प्रोजेक्ट पेज पर एक कार्य बनाएं।
Seer को पैकेज मैनेजर या स्रोत से स्थापित किया जा सकता है।
[!NOTE] स्थापना से पहले सुनिश्चित करें कि आवश्यकताएँ पूरी हों।
Linux
C++17
gdb जिसमें "mi" इंटरप्रेटर हो (चलाकर जाँचें: gdb --interpreter=mi)
CMake (3.5.0 या नया)
QT6
QT5
निम्नलिखित पैकेज मैनेजरों के माध्यम से उपलब्ध:
$ pamac install seer
$ zypper install seergdb
Flathub वेबसाइट। यहाँ
$ flatpak install flathub io.github.epasveer.seer
बीटा Seer संस्करण। GitHub पर Seer का रिलीज़ पेज।
महत्वपूर्ण: flatpak-spawn --host, gdb चलाने के लिए GDB लांचर में आवश्यक है। https://github.com/epasveer/seer/issues/377#issuecomment-3620844808 देखें।
seer.flatpak डाउनलोड करें। इसे स्थापित करें:
$ flatpak install -y --bundle --user seer.flatpak
(अनुशंसित) Seer को नीचे दिए गए निर्देशों का पालन करके Qt6 के साथ बनाया जा सकता है।
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
इसे अभी भी नीचे दिए गए निर्देशों का पालन करते हुए, कुछ समय के लिए, Qt5 के साथ बनाया जा सकता है।
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
GitHub पर Seer का विकी पृष्ठ देखें।
Seer को कमांड लाइन से डिबग करने के लिए प्रोग्राम को आसानी से शुरू करने के लिए डिज़ाइन किया गया है। gdb के पास प्रोग्राम को डिबग करने के कई तरीके हैं। तो Seer में भी स्वाभाविक रूप से वैसे ही तरीके हैं।
Seer चलाने के सभी तरीके देखने के लिए विकी पर जाएँ।
https://github.com/epasveer/seer/wiki/Starting-Seer
विभिन्न Seer दृश्यों और संवादों के उदाहरण।
Seer का मुख्य दृश्य इस प्रकार दिखता है:

स्रोत/फंक्शन/प्रकार/चर/लाइब्रेरीज़
चर/रजिस्टर जानकारी
कोड मैनेजर।
Breakpoints, Watchpoints, Catchpoints, Printpoints, मैन्युअल gdb कमांड, और लॉग।
जब ओपन एक्जीक्यूटेबल संवाद लागू किया जाता है, तो यह इस प्रकार दिखता है:

एक्जीक्यूटेबल से सभी टेक्स्ट आउटपुट Seer कंसोल पर जाएँगे। एक्जीक्यूटेबल के लिए टेक्स्ट इनपुट भी कंसोल के माध्यम से दर्ज किया जा सकता है।

सामान्यतः Seer कोड मैनेजर में केवल स्रोत कोड को टैब के रूप में दिखाएगा। प्रोग्राम के असेंबली को भी टैब के रूप में दिखाया जा सकता है।
"View->Assembly View" चुनें और स्रोत कोड टैब के साथ एक अतिरिक्त टैब दिखाई देगा जो वर्तमान में निष्पादित हो रहे असेंबली को दिखाता है। यहाँ एक उदाहरण है।

स्रोत कोड टैब की तरह, असेंबली टैब में ब्रेकपॉइंट सेट किए जा सकते हैं। वर्तमान निर्देश हाइलाइट किया गया है।
"Breakpoints" टैब और "Stack frames" टैब में प्रविष्टियों पर डबल-क्लिक करने से उन पतों के लिए असेंबली दिखाई देगी।
"Nexti" और "Stepi" हॉट-की हैं, जैसा कि आपकी कॉन्फ़िगरेशन सेटिंग्स द्वारा परिभाषित किया गया है। सामान्यतः "Ctrl+F5" और "CTRL+F6"। असेंबली टैब में "^F" का उपयोग करने से एक शक्तिशाली खोज बार दिखाई देगा।
Seer में असेंबली सुविधा नई है। बेझिझक परिवर्तन/सुविधाओं का सुझाव दें।
मेमोरी विज़ुअलाइज़र में कच्ची मेमोरी की सामग्री देखने पर यह इस प्रकार दिखता है:
| मेमोरी | डिसअसेंबली |
|---|---|
![]() | ![]() |
ऐरे विज़ुअलाइज़र में ऐरे की सामग्री देखने पर यह इस प्रकार दिखता है:
| सामान्य | स्पलाइन | स्कैटर |
|---|---|---|
![]() | ![]() | ![]() |
दो ऐरे का उपयोग X-Y प्लॉट के रूप में किया जा सकता है। उदाहरण के लिए, यह सरल 'points' ऐरे एक आकार की X-Y रूपरेखा बनाता है।
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| X मान | Y मान | XY मान |
|---|---|---|
![]() | ![]() | ![]() |
स्ट्रक्ट विज़ुअलाइज़र में C/C++ स्ट्रक्ट या C++ क्लास की सामग्री देखने पर यह इस प्रकार दिखता है। यह उदाहरण वर्तमान C++ क्लास के लिए "*this" की सामग्री दिखाता है जिसमें Seer है। सभी स्ट्रक्चर सदस्य जो मूल प्रकार के हैं, संपादित किए जा सकते हैं।

एक बेसिक स्ट्रक्ट विज़ुअलाइज़र भी है जो अधिक हल्का है, लेकिन पॉइंटर्स का अनुसरण नहीं कर सकता और संपादित नहीं किया जा सकता।
जब कच्ची मेमोरी की सामग्री को देखते हैं जो एक इमेज है, तो इमेज विज़ुअलाइज़र का उपयोग किया जा सकता है।

किसी भी बग या सुविधा के लिए [email protected] पर ईमेल भेजें। या मेरे GitHub प्रोजेक्ट पेज पर एक कार्य बनाएँ।
यह एक अद्भुत दुनिया है।
स्टैक फ्रेम जानकारी।
थ्रेड जानकारी।
Gdb के Reverse Debugging मोड का समर्थन करता है।