Inserir automaticamente o nome do arquivo e o número da linha nas instruções de registro de um programa C

Estou escrevendo um programa para um processador ARM incorporado noC. Gostaria de ver o nome do arquivo de origem e o número da linha nas instruções de log.

Como o código compilado não tem conhecimento dos números de linha e dos arquivos de origem, estou procurando maneiras de inseri-lo automaticamente antes / durante o processo de compilação.

Existem ferramentas padrão ou recursos do compilador que eu possa usar para isso?

Estou usando o GCC.

Por exemplo:

Isto é o que eu escreveria no arquivo de origem:

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

Isto é o que realmente seria compilado:

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

questionAnswers(2)

yourAnswerToTheQuestion