क्या लिनक्स कर्नेल में फ़ंक्शन कॉलर प्राप्त करने का कोई तरीका है? मुझे पता है __ func __ निष्पादित कार्य नाम लौटाता है। मैं समारोह जो "__ समारोह __" कहा जाता हैलिनक्स कर्नेल में फ़ंक्शन कॉलर
उत्तर
आप __builtin_return_address(0)
साथ फोन करने वाले प्राप्त कर सकते हैं के लिए देख रहा हूँ।
कॉलर का कॉलर __builtin_return_address(1)
और इसी तरह से है।
यह एक जीसीसी विस्तार, जीसीसी के मैनुअल में प्रलेखित है: http://gcc.gnu.org/onlinedocs/gcc/Return-Address.html
संपादित करें: मैं शायद कहना चाहिए, तो आप फोन करने वाले का पता हो जाता है कि। आप समारोह नाम चाहते हैं तो आप %pS
के साथ मुद्रित कर सकते हैं, जैसे:
printk("Caller is %pS\n", __builtin_return_address(0));
आप इसे प्रिंट नहीं करना चाहते हैं, तो आप उपयोग कर सकते हैं kallsyms_lookup()
आदि
चाहे या फ्रेम नहीं संकेत की जरूरत है निर्भर करता है आर्क पर, आईआईआरसी। X86 के लिए, वे निश्चित रूप से इन सुविधाओं का पूरी तरह से शोषण करने के लिए वांछित हैं। यह भी ध्यान रखें कि इस कारण से इनलाइनिंग buildin_return_address की सटीकता को कम कर सकती है।
यदि आप बस एक स्टैक डंप चाहते हैं कि यह देखने के लिए कि कुछ जगह कैसे पहुंची है, तो dump_stack()
फ़ंक्शन का उपयोग बेहतर ढंग से buildin_return_address के साथ फ़ॉल करने की कोशिश करने से करें।
आप dump_stack() को कॉल करके संपूर्ण कॉल स्टैक सामग्री भी प्रिंट कर सकते हैं।
कॉलर फ़ंक्शन नाम प्राप्त करने के लिए, कोई नीचे दिए गए प्रिंटक कमांड का उपयोग कर सकता है।
प्रिंटक ("कॉलर% पीएफ \ n", __builtin_return_address (0));
- 1. लिनक्स कर्नेल
- 2. लिनक्स कर्नेल
- 3. लिनक्स कर्नेल
- 4. लिनक्स कर्नेल
- 5. लिनक्स कर्नेल
- 6. लिनक्स कर्नेल
- 7. लिनक्स कर्नेल
- 8. लिनक्स कर्नेल
- 9. लिनक्स कर्नेल
- 10. लिनक्स कर्नेल
- 11. लिनक्स कर्नेल
- 12. लिनक्स कर्नेल
- 13. लिनक्स कर्नेल
- 14. लिनक्स कर्नेल: copy_from_user - पॉइंटर्स
- 15. कॉलर फ़ंक्शन रिटर्न मान
- 16. लिनक्स कर्नेल - मॉड्यूल
- 17. कर्नेल मोड हुक में कॉलर एसआईडी कैसे प्राप्त करूं? (विंडोज़)
- 18. लिनक्स कर्नेल विकास
- 19. एंड्रॉइड कर्नेल और वेनिला लिनक्स कर्नेल
- 20. मैं लिनक्स कर्नेल
- 21. लिनक्स कर्नेल स्रोत
- 22. लिनक्स कर्नेल कोडिंग शैली
- 23. लिनक्स कर्नेल 3.3
- 24. डिबगिंग विंडोज कर्नेल लिनक्स
- 25. मैं लिनक्स कर्नेल स्रोत
- 26. "वर्तमान" लिनक्स कर्नेल स्रोत
- 27. लिनक्स कर्नेल म्यूटेक्स
- 28. लिनक्स कर्नेल स्रोत
- 29. लिनक्स कर्नेल टाइमर बदलें
- 30. कॉर्पोरेट लिनक्स कर्नेल विकास
मुहाहाहा। हाहा ... संवेदना नहीं। –