Win32 memory map ?

koodaaja80

Win32 memory map ?

Jos muistan oikein, niin WIN32 -ympäristössä (sovelluksen omassa 32-bit flat -muistiavaruudessa) offsetit väliltä 0-65535 ovat pysyvästi kelvottomia muistiosoitteita; tämän tarkoituksena on ilmeisesti ollut taata hyvä todennäköisyys sille, että jos erehdyksessä yrittää viitata muistiin osoittimella, jonka arvo on 0 (C: NULL , Objectpascal: NIL), niin tämä johtaisi "Access violation" -poikkeukseen sen sijasta, että ohjelma käsittelisi vääriä muistipaikkoja.

miksikö 64 kiTavun muistialue ?

Ilmeisesti tarkoituksena on ollut näin varmistaa se , että kun useimmat tietueet ovat kooltaan < 64k, niin nollaosoittimella tietueen mihin tahansa kenttään aiheuttaa silti poikkeuksen.

Yritin googlettaa varmistusta tälle muistikuvalle, mutta tämä:

windows memory map

ei löytänyt haluttua tulosta.

Debuggaan siis juuri koodia, jossa kirjastofunktio palauttaa ilmeisesti kelvottoman muistiosoitteen.

3

304

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Niittimies

      >kirjastofunktio palauttaa ilmeisesti kelvottoman
      >muistiosoitteen.

      Miten et voi olla varma siitä, että funkkari palauttaa kelvottoman muistiviittauksen? Aika fataalia.

      • koodaaja80

        "Miten et voi olla varma siitä, että funkkari palauttaa kelvottoman muistiviittauksen? Aika fataalia."

        No kelvottomaltahan tuo vaikuttaa:

        Aiheuttaa käytettäessä "Access violation" -poikkeuksen ja lisäksi osoittimen arvo tulkittuna 32-bit etumerkittömänä kokonaislukuna


      • ogma
        koodaaja80 kirjoitti:

        "Miten et voi olla varma siitä, että funkkari palauttaa kelvottoman muistiviittauksen? Aika fataalia."

        No kelvottomaltahan tuo vaikuttaa:

        Aiheuttaa käytettäessä "Access violation" -poikkeuksen ja lisäksi osoittimen arvo tulkittuna 32-bit etumerkittömänä kokonaislukuna

        Yleensä x86 käyttiksissä nollasta ylöspäin on varattu prosessin koodille. Osoitteessa nolla sijaitsee 32-bittinen vakio nolla. Siitä ylöspäin on yleensä koodia ja kiinteää vakiodataa. Muistiavaruus jatkuu 2 GB:hen asti (Win32 ja muistaakseni Linux:kin), jonka jälkeen alkaa vastaava avaruus dynaamisille kirjastoille. Koska Win32 Api sisältää tuhansia funktioita, niin oli kiva tietää mitä funkkaria yrität käyttää. Ja miten. Jotta voisi vähän täsmällisemmin yrittää vastata.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikan kukkaronnyöri on umpisolmussa

      Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h
      Maailman menoa
      3
      2711
    2. Jos vedetään mutkat suoraksi?

      Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar
      Sinkut
      106
      2481
    3. Tanskan malli perustuu korkeaan ansioturvaan

      Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv
      Maailman menoa
      4
      2229
    4. Vain vasemmistolaiset ovat aitoja suomalaisia

      Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.
      Maailman menoa
      44
      1845
    5. Miten must tuntuu

      et sä ajattelet mua just nyt
      Ikävä
      32
      1423
    6. Anteeksipyyntöni

      Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska
      Järki ja tunteet
      14
      1413
    7. Kun et vain tajua että

      sua lähestytään feikkiprofiililla :D Hanki aivot :D m-n
      Ikävä
      176
      1145
    8. Sydämeni valtiaalle

      En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden
      Ikävä
      101
      1114
    9. Persu ajoi autoa

      Ajoi lapsen yli https://www.iltalehti.fi/kotimaa/a/597a7468-3d1d-455e-bed2-21c1efc31ac1
      Perussuomalaiset
      20
      1043
    10. Oletko tyytyväinen

      Tämän hetkiseen tilanteeseenne? Odotatko, että lähennytte vai yritätkö päästä yli ja eteenpäin?
      Ikävä
      81
      908
    Aihe