If you are looking at code in packages, then make sure those packages have the correct debug info set too.
If it is only project files, then that is covered by the project settings.
objdump.exe --dwarf=decodedline project1.exe
Mind, that may include units from packages. So the output can be huge.
You can also play with wpo (whole program optimization).
Search the wiki. It's an fpc feature, where you compile several times, and the compiler uses info from the last compile to further optimize the next compile.
I.e. it can then detect, if a virtual method gets called or not, and if not, it can drop it, and in the next run drop further stuff, if it was only hold by the now dropped method.