When I started working on GCC in 1988 (on the Motorola 88000 port at Data General), one of the things I did in that time period was add the -save-temps switch. What -save-temps does is keep a copy of the preprocessed file (.i suffix for C files, .ii suffix for C++ files) and the assembler file (.s suffix) in the directory you are running in. Rather than running the compiler in the debugger to get to the point of failure, you can just do a normal build, and you will have the preprocessed input and an assembler file to look at. In addition, I could use the assembler files to do easy counts of the various types of instructions generated.
Later in 2009, when I am working at IBM, and I'm starting to do builds on machines with many more cores and processors, and I tend to use -j40 on the make file when building Spec 2006 runs, it became apparent that some builds were breaking when you use -save-temps. This is due to the structure of one of the Spec builds, in that there are several subdirectories, and in the subdirectories are files with the same name. The large makefile builds each of these files with an -o option to write the object into the directory the source is running at. If you are running with high -j values, eventually you will compile two of these files with the same base name at the same time. Because the preprocessed file is fed into the compiler proper, and the assembler file is fed into the assembler, the two parallel compiles will overwrite the files and cause the assembler to say Huh? Even if you don't overwrite the files, one of the files will be deleted, which means any static instruction counts that you do will be inaccurate. So I added the -save-temps=obj variant to put the file into the subdirectory where the -o option is using, and to use the name of the object file, changing the suffix.
Now, in the Arduino IDE environment, it does build objects in subdirectories (if they are in libraries), so you might possibly have the same name in 2 different libraries. However, I don't believe the IDE uses the -j option, so if you use -save-temps instead of -save-temps=obj, you might be missing an assembler file. Note, I believe the AVR compiler used for the Teensy 2.0 is so old it does not support -save-temps=obj.
Now, you can try to make an assembler listing instead, but you may run into the problem of having to use a fixed name for the output, and you might not get the listing you want. An alternative is to do a verbose build, and then find the line compiling the file you are interested in, and from a command line shell, issue that command, adding whatever options you want.