ठीक है, करीब आप प्राप्त कर सकते हैं संकलक द्वारा उत्पन्न एएसटी/ABT पढ़ने के लिए है वाक्य रचना के दृश्य का प्रतिनिधित्व के रूप में संकलक यह समझता है और बाद में इसी तरह के बाइंडिंग (यानी की संकल्प के बाद यह है कि यहां a
वास्तव में चर कि 3 लाइनों से पहले घोषित कर दिया गया है या foo
उस हेडर में परिभाषित फ़ंक्शन में correspdonds ...)।
बजना अपने एएसटी ... जो वास्तव ABT, वास्तव में, यह इस क्षण में सुधार किया जा रहा है में है डंप करने के लिए अनुमति देता है; चुपके डेवलपर पूर्वावलोकन:
int Test __attribute__((visibility("default")));
int main(int argc, char** argv) {
int x __attribute__((aligned(4))) = 5;
int y = 2;
for (;;)
if (x != y++)
break;
return (x * y);
}
आम तौर पर आप को देखना चाहिए कि कैसे टेम्पलेट वहाँ instantiated किया गया था।
नोट: इसे पाने के लिए आप बजना सामने के अंत करने के लिए -ast-dump
पास की जरूरत है।
स्रोत
2013-01-25 14:15:25
बहुत खराब टेम्पलेट इन्स्टेन्शियशन * है वास्तविक संकलन की प्रक्रिया के हिस्से * ... और या तो शुरुआत में एक नहीं, यह बीच वाले चरण में कहीं है। इसके अलावा, टेम्पलेट्स मांग पर तत्काल हैं। – Xeo
मेरे दिमाग के बजाय मूर्खतापूर्ण भाग से टिप्पणी करें: "g ++ -S" का उपयोग करें और जेनरेट किए गए असेंबलर कोड का निरीक्षण करें! –
एफ ए सी है कि वे संकलन प्रक्रिया का एक हिस्सा हैं @Xeo यकीन है के लिए एक समस्या है, लेकिन है कि वे मांग पर instantiated कर रहे हैं मुझे नहीं se करना एक समस्या के रूप में। तत्काल टेम्पलेट्स (मांगे जाने वाले लोगों के लिए) के साथ एक अलग .log फ़ाइल आउटपुट करने के लिए यह (hypothetically) क्यों संभव नहीं होगा? क्या यह टेम्पलेट कोड डीबग करना थोड़ा आसान नहीं होगा? बस पूछना ... – tmaric