Ein ideales Werkzeug hierfür ist ein Debugger, bei dem Sie keine Änderungen an Ihrem Programm vornehmen müssen.
Wenn Sie jedoch wirklich den Aufrufer lokal innerhalb des Programms erhalten möchten, ist das auch möglich - aber nicht in Standard C++, ohne plattformspezifische oder Wrapper-Bibliotheken zu verwenden (außer den Konstruktor zu ändern und den Makrotrick zu verwenden).
Ich benutze gcc nicht so Backtrace() Funktion für mich keine Option ist.
Dann müssen Sie herausfinden, welche Compiler Sie sind verwenden, und verwenden, was Alternative bieten sie für Stapel Abwickeln.
Es gibt eine portable Bibliothek libunwind, die Sie verwenden könnten, die ohne Zugriff auf Backtrace funktioniert. Es scheint jedoch nicht auf Windows portiert zu werden.
ich mit Makro-weiß Verpackung kann für das Erhalten Aufrufer einer Funktion
Wrapping die Initialisierung verwendet werden soll, in einer ähnlichen Art und Weise arbeiten.
Benötigen Sie dies zum Debuggen? –
Ja. Ich werde es benutzen, um Bugs zu entdecken. – wArtist
Wie wäre es mit einem Debugger? –