Avatar ·

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

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