2016-11-13 1 views
0

Gibt es eine Möglichkeit, gcc (MinGW/Windows) zu lassen, um alle aufgerufenen Befehlszeilen anzuzeigen?Wie mache ich gcc zeigen die internen Befehle aufgerufen?

Beispiel:

gcc -o test.exe test.c -desiredOption 

... ausgeben sollte etwas wie folgt aus:

cc1 -o intermediate.s test.c 
as -o intermediate.o intermediate.s 
ld - o test.exe intermediate.o crt0.o -lsomelibrary -e __start 

Hintergrund:

Manchmal einige Assembler bezogene Optionen gut funktionieren, wenn ich "gcc" nennen, aber Sie funktionieren überhaupt nicht, wenn ich versuche, "ld.exe" direkt aufzurufen. Daher möchte ich wissen, welche Option wirklich an "ld.exe" von "gcc.exe" übergeben wurde.

Unter Linux würde ich so etwas wie verwenden:

strace -f gcc -o test.exe test.c 

... die Befehlszeilen zu sehen (als Argument der execve Systemaufrufe).

+0

Nein, [strace (1)] (http://man7.org/linux/man-pages/man1/strace.1.html) zeigt keine * command * -Zeilen, aber [system calls] (https: //en.wikipedia.org/wiki/System_call). Sie stellen die falsche Frage. –

Antwort

0

Lesen Sie die Invoking GCC Kapitel des GCC documentation .Sie die -v option wollen:

Drucken (auf der Standardfehlerausgabe) die ausgeführten Befehle die Stufen der Kompilierung ausgeführt werden. Drucken Sie auch die Versionsnummer des Compilertreiberprogramms und des Präprozessors und des eigentlichen Compilers.

Beachten Sie, dass auf Linux, strace(1) nicht Befehl Linien nicht zeigt, aber system calls.

+0

Vielen Dank. "-v" ist genau die Option, die ich brauche. –

Verwandte Themen