Avatar ·

GCC में C/C++ कोड से असेंबलर लिस्टिंग कैसे प्राप्त करें?

सभी को नमस्ते। मैं C++ सीख रहा हूँ और यह समझने की कोशिश कर रहा हूँ कि कम्पाइलर मेरे कोड को मशीन इंस्ट्रक्शन में कैसे बदलता है। मैं देखना चाहता हूँ कि, उदाहरण के लिए, एक साधारण loop या function call क्या बनता है। मैं Linux पर GCC (g++) का उपयोग कर रहा हूँ।\n\nमैंने `-S` flag आज़माया, यह एक `.s` फ़ाइल बनाता है, लेकिन उसमें बहुत सारा कचरा होता है — labels, `.cfi_*` directives, `.LC0` जैसे समझ से बाहर के नाम। यहाँ तक कि एक साधारण `hello.cpp`:\n\n```cpp\n#include \nint main() {\n std::cout << "Hello";\n return 0;\n}\n```\n\n`g++ -S hello.cpp` के बाद `hello.s` में मैं न केवल कोड देखता हूँ, बल्कि बहुत सारी अतिरिक्त चीज़ें भी देखता हूँ। मैं एक साफ असेंबलर लिस्टिंग कैसे प्राप्त करूँ, जहाँ केवल मेरे function का कोड दिखे, बिना इस सारी सर्विस जानकारी के?\n\nमुझे यह भी जानना है: क्या फ़ाइल बनाए बिना सीधे terminal में असेंबलर देखा जा सकता है? और मिश्रित सोर्स कोड के साथ लिस्टिंग कैसे बनाएँ?