c ++ - Sådan læses en .obj-fil?

Indlæg af Hanne Mølgaard Plasc

Problem



I visuel studio genererer en objektfil (.obj) efter samling af en c ++-fil.
Sådan læses og forstås det?
Også hvordan man kan se koden efter compileroptimering i Visual Studio 2015.
Venligst omdirigere, hvis dette allerede er besvaret.

Bedste reference


Brug DUMPBIN-værktøjet fra Visual Studio-kommandoprompten. Specifikt viser indstillingen /DISASM dig demontering. Bemærk, om du har aktiveret linkoptimering, så kan den endelige kode i det mindste teoretisk ændres efter at .obj filer er knyttet til den endelige binære (.exe eller .dll). Du kan også adskille dem med DUMPBIN. [6]

Andre referencer 1


Du er en slags at stille det forkerte spørgsmål: Du siger, at du vil se kompilatoroptimeringer, men så trækker du konklusioner, der får dig til at tænke dig .obj-filer er nødvendige for det. Det fungerer, som cynicens svar viser, men der er alternativer som kan være bedre/bedre afhængigt af situationen:



  • Kør kode under debuggeren, brud, højreklik på en kildefil, vælg 'Gå til demontering', og du kan se kilden og samlingen inline

  • har kompilatorudgangskonfigurationskoden (igen valgfrit inklusiv kilde- og maskinkode): Gå til projektindstillinger-> Kompilator-> Uddatafiler og indstil 'Assembler Output'


Andre referencer 2


Dumpbin i/ alle -indstillingen viser kodesektioner & mapper. Detaljerede forklaringer på ting som kodesektion egenskaber er ikke almindelig viden, men kan findes i visse bøger. Her er en lige om COFF, her er en mere detaljeret beskrivelse, eller der er endda en WYSINWYX-afhandling.
[7] [8] [9]


Tilføjelse til @ cynics svar, i Visual Studio (15 &17) er det muligt at køre DumpBin via menuen.
Gå til Værktøjer/Eksternt værktøj s og klik på Tilføj.
Indsæt titlen boksen noget som DumpBin Din\_Exe eller Din\_Obj navn og find stien til DumpBin, hvis den ikke er i miljøindstillingerne.
Det kan ligne følgende:



  c: \ programfiler (x86) \ Microsoft Visual Studio \ 2017 \ community \ VC \ Værktøjer \ MSVC \ SDK-Version \ bin \ Host $ (Platform) \ $ (platform) \dumpbin.exe



og tilføj det til kommandoboksen. For argumenter prøv noget som:



  /ALL/OUT:C:\Users\New\Desktop\dumpofYour\_ExeName.txt 'Banenavn til din obj/eksekverbar fil'



og ja, citaterne vil fungere.


Hvis du bruger skrivebordet, skal du også sætte det i den oprindelige mappe.
Vælg 'prompt for arguments', hvis du ønsker at lade feltet Argument være tomt.