Re: BP 7, Data Segment Too Large

Autor: Gregorio Kus (Grego_at_RMnet.IT)
Data: Tue 19 Nov 1996 - 13:54:57 MET


On Tue, 19 Nov 1996 13:00:38 +0100, Aleksander Data wrote:

>Kompiluj c program pod Borland Pascalem 7.0 w trybie real okno
>INFORMATION wygl da nastŰpuj co:
[...]
> Data size: 58726 bytes
[...]
>Pržbuj c kompilowa ten sam program w trybie protected otrzymujŰ
>informacjŰ Error 49: Data segment too large.

moja bliska znajomosc z kompilatorami Borlanda urwala sie na TP6.0
ale cos jednak sprobuje Ci zasugerowac:
otoz jestes doc blisko granicy 64kB, wiec stosunkowo drobne
nawet "powiekszenie danych" moze spowodowac error 49.
Musisz sprawdzic nastepujace rzeczy:
1. czy przy przejsciu z real do protected tzw. data boundaries
nie zmieniaja sie przypadkiem z word na doubleword?
(tzn. miedzy kolejnymi danymi o "nieszczesliwych rozmiarach"
kompilator wstawia "dziury" aby kazda dana zaczynala sie na adresie
podzielnym przez 4 aby przyspieszyc dostep do danych przy 32 bitowym
slowie). Jezeli tak, to napewno w opcjach kompilacji mozna
ustawic na word a nawet na byte - program wynikowy bedzie
ciut wolniejszy ale sie zmiesci.
2. Czy defaultowa reprezentacja wewnetrzna ktoregos typu danych
nie zmienia sie przy przejsciu z trybu real na protected?
i czy da sie to zmieniac w opcjach kompilacji.

To tyle gwoli hipotez, natomiast jesli interesuje Cie przede
wszystkim to, aby program dzialal, a mniej to dlaczego wystapil
opisany przez Ciebie efekt - przerzuc po prostu jakies dane
globalne na heap.

Grego

--
/-----------------------------------------------------------------
Gregorio Kus    Grego_at_RMnet.it                Grego_at_cyberspace.org
ROMA, Italy     http://www.RMnet.it/~grego    Grego_at_FreeNet.hut.fi
Anonymous Mail Service - http://free.rmnet.it/~grego/AnonMail.html


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 12:56:46 MET DST