
Seer - gdb के लिए एक GUI फ्रंटएंड
Seer - Linux के लिए gdb का एक GUI फ्रंटएंड। (Ernie Pasveer [email protected])
इस प्रोजेक्ट पर सक्रिय रूप से काम चल रहा है। लक्ष्य gdb के लिए एक सरल, फिर भी आकर्षक GUI बनाना है।
कृपया किसी भी बग या वांछित सुविधा की रिपोर्ट मेरे ईमेल पर करें या मेरे GitHub प्रोजेक्ट पेज पर एक कार्य बनाएं।
Seer को या तो पैकेज मैनेजर से या स्रोत से स्थापित किया जा सकता है।
[!NOTE] स्थापित करने से पहले सुनिश्चित करें कि आवश्यकताएँ पूरी हों।
Linux
C++17
"mi" इंटरप्रेटर के साथ gdb (चलाकर जाँचें: 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 Launcher में आवश्यक है। देखें https://github.com/epasveer/seer/issues/377#issuecomment-3620844808।
seer.flatpak डाउनलोड करें। इसे स्थापित करें:
$ flatpak install -y --bundle --user seer.flatpak
बीटा Seer संस्करण। GitHub पर Seer का रिलीज़ पेज।
$ snap install seergdb_<version>.snap --dangerous
(अनुशंसित) Seer को नीचे दिए गए निर्देशों का पालन करके Qt6 के साथ बनाया जा सकता है।
इसे अभी के लिए नीचे दिए गए निर्देशों का पालन करके Qt5 के साथ भी बनाया जा सकता है।
GitHub पर Seer का Wiki पेज देखें।
Seer को कमांड लाइन से डीबग करने के लिए प्रोग्राम को आसानी से प्रारंभ करने के लिए बनाया गया है। gdb के पास प्रोग्राम को डीबग करने के कई तरीके हैं। इसलिए Seer भी स्वाभाविक रूप से ऐसा करता है।
Seer चलाने के सभी तरीकों को देखने के लिए Wiki पर जाएं।
विभिन्न Seer दृश्यों और संवादों के उदाहरण।
Seer का मुख्य दृश्य इस प्रकार दिखता है:

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

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

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

स्रोत कोड टैब की तरह, असेंबली टैब में breakpoints सेट किए जा सकते हैं। वर्तमान निर्देश हाइलाइट किया गया है।
"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 प्रोजेक्ट पेज में एक कार्य बनाएं।
यह एक अद्भुत दुनिया है।