Testi on 32-bittisellä Linuxilla.
Tämän komennon avulla haen kontekstin .text
.rodata
ja .data
-osio:
objdump -s -j .text elf_binary objdump -s -j .rodata elf_binary objdump -s -j .data elf_binary
Mutta periaatteessa kun yritin käyttää tätä saadaksesi .bss
-osion sisällön, saan aina alla olevan virheen:
objdump -s -j .bss elf_binary objdump: section ".bss" mentioned in a -j option, but not found in any input file
Pohjimmiltaan miten saan .bss
-osion sisällön ELF-binaarista?
Vastaa
.bss
-palvelussa ei ole sisältöä. Se on yksinkertaisesti vihje latauslaitteelle varaamaan tilaa uudelleen ohjelman käynnistämisen yhteydessä. Suorituksessa on kaikki nollat ja siinä ei ole mitään hyödyllistä tietoa, ennen kuin ohjelma kirjoittaa siihen. Tämän jälkeen voit käyttää virheenkorjainta muistin tyhjentämiseen ja sen sisällön tutkimiseen.
Katso lisätietoja Wikipedia -sivulta .
Vastaus
.bss
-lohko, jonka aloitti symboli ( kutsutaan myös alustamattomaksi tietosegmentiksi – bss
on vanha kokoonpanokäsky muinaiselle IBM-sirulle) -osion on tarkoitus sisältää global variables
ja static variables
ei alustettu tai alustettu arvoon 0 tai NULL. .bss
-osaa ei yleensä ole olemassa, kunnes ohjelma käynnistyy, siksi et voi ”noutaa sen sisältöä staattisesti. On melko tärkeää huomata, että tämä osio auttaa vähentämään ohjelmaa” s koon & ansiosta lataaminen on nopeampaa.