Como ver a ordem real dos arquivos de inclusão após o pré-processamento?

Tenho um arquivo .cpp que inclui alguns arquivos de cabeçalho. Esses arquivos de cabeçalho também podem incluir outros arquivos de cabeçalho. Os protetores de inclusão estão em vigor para impedir a inclusão do mesmo arquivo duas veze

Sabendo que cada arquivo é incluído apenas uma vez. Existe uma maneira de descobrir a ordem final na qual todos os cabeçalhos serão incluídos?

Eu tenteigcc -E para obter a saída do pré-processador, mas o código gerado não parece útil para extrair as informações que eu quero. Alguém pode ajudar?

Edita

A razão pela qual estou perguntando é porque preciso incluir meus arquivos de cabeçalho em um arquivo de interface SWIG na ordem correta para evitar a geração de invólucros estranhos SWIGTYPE_p_

Atualiza

Obrigado pelas respostas. Usandocpp -H parece muito útil. No entanto, não consigo encontrar o caminho paragrep oused esses resultados para obter a lista simples de arquivos de cabeçalho na ordem correta e sem duplicata

questionAnswers(3)

yourAnswerToTheQuestion