Automatisches Einfügen von Dateiname und Zeilennummer in Protokollanweisungen eines C-Programms

Ich schreibe ein Programm für einen eingebetteten ARM-Prozessor inC. Ich möchte den Quelldateinamen und die Zeilennummer in den Protokollierungsanweisungen sehen.

Da der kompilierte Code keine Kenntnis von Zeilennummern und Quelldateien hat, suche ich nach Möglichkeiten, diese vor / während des Kompilierungsprozesses automatisch einzufügen.

Gibt es Standardwerkzeuge oder Compilerfunktionen, die ich dafür verwenden kann?

Ich benutze GCC.

Zum Beispiel:

Folgendes würde ich in die Quelldatei schreiben:

log("<#filename#> <#linenumber#> : Hello World");

Dies ist, was tatsächlich kompiliert werden würde:

log("Foobar.c 225 : Hello World");

Antworten auf die Frage(2)

Ihre Antwort auf die Frage