www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/01/19:01:11

From: Endlisnis <s257m AT unb DOT ca>
Newsgroups: comp.os.msdos.djgpp
Subject: RHIDE Can't debug this. Was: Am I retarded -or- Why is my exe size so big?!?
Date: Tue, 01 Sep 1998 18:15:21 -0300
Organization: NBTel Internet
Lines: 307
Message-ID: <35EC63E9.4FD54CF0@unb.ca>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 980831115924 DOT 22974D-100000 AT is>
NNTP-Posting-Host: fctnts13c33.nbnet.nb.ca
Mime-Version: 1.0
CC: djgpp AT delorie DOT com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

This is a multi-part message in MIME format.
--------------716EB8E7F4423D1EA1ECEB93
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Eli Zaretskii wrote:
> Wait a minute.  You cannot debug it even under -O0?  If so, then this
> has nothing to do with debugging optimized code.  Can you post a code
> fragment that escapes debugging and explain how exactly does it
> prevent you from debugging it?
	That is correct, even with -O0, it will skip break-points.  The problem is
that it only seems to happen on large (600+ lines of code) files.  I can't get
any simple examples to screw up.  But, I was able to sort-of do something.  I
removed as much code as I could, and commented out the rest (removing the
comments made the problem go away).  I have binarily attached it to this
message, because re-formatting the text file seems to get rid of this
phenomenon.  You can step through the code, but setting a break-point (by
pressing F4) on line #132 (or #133) in the main file will cause the entire
program to be executed, not stopping where I desired.  It includes another
file, which I have provided.  I have experienced this multiple times, but
always in large files.  Just save the 2 files in the same directory, and load
'fade9T.cc' and press F4 on line 132, and you watch it skip that point.  All
the program does is print out 2 strings and 1 integer using cout.  It doesn't
seem to matter if it is compiled in a project or not, and optimization level
doesn't seem to matter.

-- 
     (\/) Endlisnis (\/)
          s257m AT unb DOT ca
          Endlisnis AT GeoCities DOT com
          Endlis AT nbnet DOT nb DOT ca
--------------716EB8E7F4423D1EA1ECEB93
Content-Type: application/x-unknown-content-type-cc_auto_file; name="fade9T.cc"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="fade9T.cc"

Ly8gUHJvZ3JhbW1lZCBieSwgYW5kIGNvcHlyaWdodCBvZiwgUm9sZiBDYW1wYmVsbCAoMTk5
NS0xOTk4KS4NCi8vIENvbG9yIHF1YW50aXplciB2ZXJzaW9uIDkuNA0KDQojaW5jbHVkZTxp
b3N0cmVhbS5oPg0KLy8jaW5jbHVkZTx0aW1lLmg+DQoNCiNpbmNsdWRlInN2Z2EuaCINCi8v
I2luY2x1ZGUicGN4LmgiDQovLyNkZWZpbmUgREVCVUcNCi8vI2RlZmluZSBERUJVRzINCg0K
Ly8jZGVmaW5lIFNIQVJFV0FSRQ0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vVHlwZURl
ZidzLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy90eXBlZGVmIHVuc2lnbmVkIGNoYXIg
Ynl0ZTsNCi8vdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgd29yZDsNCi8vdHlwZWRlZiB1
bnNpZ25lZCBpbnQgbHdvcmQ7DQoNCi8vc3RydWN0IE5vZGUNCi8vew0KLy8gYnl0ZSBDb2xv
cjsNCi8vIE5vZGUqIFByZXY7DQovLyBOb2RlKiBOZXh0Ow0KLy8gfTsNCg0KLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vL0dsb2JhbCBEYXRhLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8v
Ynl0ZSogQnVmZjsgIC8vQmlnIGFycmF5IHRvIGtlZXAgaW1hZ2UgaW4uDQoNCi8vZmxvYXQq
IFRhYmxlOyAvL0Vycm9yIHRhYmxlDQovL2Zsb2F0KiBUcmlBcnJheVsyNTZdOw0KDQovL2Zs
b2F0IE9IaXN0WzI1Nl0sIFBhbEVycm9yWzI1Nl07DQovL2Zsb2F0IEhpc3RvZ3JhbVsyNTZd
OyAvL0hpc3RvZ3JhbSBhcnJheS4NCg0KLypieXRlIFJlbWFwWzI1Nl0gPSB7MCwxLDIsMyw0
LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwNCjIyLDIz
LDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQx
LDQyLDQzLDQ0LDQ1LDQ2LA0KNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgs
NTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsDQo3Miw3Myw3NCw3NSw3
Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5
NCw5NSw5NiwNCjk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4
LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwNCjExNiwxMTcsMTE4LDExOSwxMjAsMTIx
LDEyMiwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwN
CjEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0Nywx
NDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywNCjE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwx
NjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwNCjE3Mywx
NzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3
LDE4OCwxODksMTkwLDE5MSwNCjE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAw
LDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwNCjIxMSwyMTIsMjEz
LDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwy
MjcsMjI4LDIyOSwNCjIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwy
NDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwNCjI0OSwyNTAsMjUxLDI1Miwy
NTMsMjU0LDI1NX07ICovIC8vIENvbG9yIHJlbWFwcGluZyBhcnJheS4NCg0KLy9Ob2RlKiBM
aXN0OyAgICAgLy9MaW5rZWQgbGlzdC4NCg0KLy9pbnQgSW1hZ2VXaWRlLCBJbWFnZUhpZ2g7
ICAvL1dpZHRoIGFuZCBIZWlnaHQgb2YgaW1hZ2UuDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy9GdW5jdGlvbiBkZWNsYXJhdGlvbnMvLy8vLy8vLy8vLy8vLy8NCi8vZXh0ZXJuICJD
Ig0KLy97IC8vSSBkaWRuJ3QgZmVlbCBsaWtlIGluY2x1ZGluZyA8bWF0aC5oPiAmIDxzdGRs
aWIuaD4NCi8vIGRvdWJsZSBzcXJ0KGRvdWJsZSk7ICAvLyBleHRlcm5hbCBzcXVhcmUgcm9v
dCBmdW5jdGlvbi4NCi8vIGRvdWJsZSBsb2coZG91YmxlKTsNCi8vIGludCBhdG9pKGNvbnN0
IGJ5dGUgKik7ICAvLyBjb252ZXJ0cyBzdHJpbmcgdG8gaW50ZXJnZXIuDQovLyB9DQoNCi8v
ZmxvYXQgVGltZURpZmYoKTsNCg0KLy90ZW1wbGF0ZSA8Y2xhc3MgVGVtcGxhdGU+DQovL3Zv
aWQgU3dhcChUZW1wbGF0ZSAmeCxUZW1wbGF0ZSAmeSkNCi8vew0KLy8gVGVtcGxhdGUgdD14
Ow0KLy8geD15Ow0KLy8geT10Ow0KLy8gfQ0KDQovL3ZvaWQgUmVtb3ZlKE5vZGUqKTsgIC8v
UmVtb3ZlcyBvbmUgZWxlbWVudCBvZiB0aGUgbGlua2VkIGxpc3QuDQoNCi8vaW5saW5lIGZs
b2F0IG9wZXJhdG9yIC8gKFBQIE9uZSwgUFAgVHdvKTsNCiAgLy9GaW5kZXMgdGhlIHdlaWdo
dGVkIGNvbG9yLXNwYWNlIGRpc3RhbmNlIGJldHdlZW4gdGhlIHBhbGV0dGUgZW50cmllcy4N
Cg0KLy9pbmxpbmUgUFAgTWlkKFBQIE9uZSwgZmxvYXQgVzEsIFBQIFR3bywgZmxvYXQgVzIp
Ow0KICAvL0ZpbmRzIHRoZSB3ZWlnaHRlZCBtaWQtcG9pbnQgYmV0d2VlbiB0aGUgY29sb3Jz
Lg0KDQovL2Zsb2F0IENhbGNFcnJvcihQYWxldHRlIE9uZSwgdW5zaWduZWQgeCwgdW5zaWdu
ZWQgeSk7DQoNCi8vdm9pZCBJbml0TGlzdCgpOyAvL0luaXRpYWxpemVzIHRoZSBsaW5rZWQg
bGlzdC4NCg0KLy92b2lkIFByaW50KE5vZGUqIExpc3QpOyAgLy9Gb3IgZGVidWdnaW5nIG9m
IHRoZSBsaXN0Lg0KDQovL3ZvaWQgU2hhcmVXYXJlKCk7DQoNCi8vaW50IEVycm9yRXhpc3Rz
KGludCBOdW1PZkFyZ3MpOw0KDQovL1BQIFNhZmVBdmVyYWdlQXJvdW5kKGludCBYLCBpbnQg
WSwgUGFsZXR0ZSBPbmUpOw0KLy9QUCBBdmVyYWdlQXJvdW5kKGludCBYLCBpbnQgWSwgUGFs
ZXR0ZSBPbmUpOw0KDQovL3ZvaWQgQnVpbGRIaXN0b2dyYW0oUGFsZXR0ZSk7DQovL3ZvaWQg
QnVpbGRUcmlhbmdsZUFycmF5KCk7DQoNCm1haW4oaW50IE51bUFyZ3MsIGNoYXIgKipBcmdz
KQ0Kew0KIC8vaWYoRXJyb3JFeGlzdHMoTnVtQXJncykpIHJldHVybiAxOw0KIC8vSW5pdExp
c3QoKTsNCg0KIC8vTG9hZCBpbWFnZSBhbmQgcGFsZXR0ZS4NCiAvKlBhbGV0dGUgT25lLFR3
bzsNCiBQY3ggSW1hZ2U7DQogSW1hZ2UuUHJldmlldyhBcmdzWzFdKTsNCiBpZihJbWFnZS5H
b29kKCkpDQogIGNvdXQgPDwgIkZpbGUgXCIiIDw8IEFyZ3NbMV0gPDwgIlwiIG9wZW5lZC5c
biI7DQogZWxzZQ0KIHsNCiAgY291dCA8PCAiQ291bGQgbm90IG9wZW4gXCIiIDw8IEFyZ3Nb
MV0gPDwgIlwiXG4iOw0KICByZXR1cm4gMTsNCiAgfQ0KIEJ1ZmYgPSBTY3JlZW4oSW1hZ2Uu
SGVhZGVyLlhNYXgrMSxJbWFnZS5IZWFkZXIuWU1heCsxKTsNCiAgVGltZURpZmYoKTsNCiAg
Y291dCA8PCAiTG9hZGluZyBpbWFnZS4uLiI7DQogSW1hZ2UuU2V0UmVhZFdyaXRlQnVmZihC
dWZmKTsNCiBJbWFnZS5SZWFkKEFyZ3NbMV0pOw0KICBjb3V0IDw8ICJkb25lLiAgKCIgPDwg
VGltZURpZmYoKSA8PCAiIHMpLlxuIjsNCiBJbWFnZUhpZ2ggPSBJbWFnZS5IZWFkZXIuWU1h
eDsNCiBJbWFnZVdpZGUgPSBJbWFnZS5IZWFkZXIuWE1heDsNCiAgY291dCA8PCAiSW1hZ2Ug
aXMgIiA8PCAoSW1hZ2VXaWRlKzEpIDw8ICd4JyA8PCAoSW1hZ2VIaWdoKzEpIDw8ICIuXG4i
Ow0KIENvcHlQYWwoSW1hZ2UuUGFsLCBUd28pOw0KIENvcHlQYWwoVHdvLE9uZSk7DQogLy9J
bWFnZSBhbmQgcGFsZXR0ZSBsb2FkZWQuDQoNCiAvL0J1aWxkSGlzdG9ncmFtKE9uZSk7DQoN
Cg0KIGNvdXQgPDwgIkJ1aWxkaW5nIHRhYmxlLi4uIjsgIFRpbWVEaWZmKCk7Ki8NCiAvKmZv
ciAodW5zaWduZWQgeT0wOyB5PDI1NjsgeSsrKQ0KICBmb3IgKHVuc2lnbmVkIHg9eSsxOyB4
PDI1NjsgeCsrKQ0KICAgVHJpQXJyYXlbeV1beF09Q2FsY0Vycm9yKFR3bywgeCx5KTsqLw0K
IGNvdXQgPDwgImRvbmUuICAoIiAvLzw8IFRpbWVEaWZmKCkNCiAgICAgIDw8ICIgcykuXG5P
cHRpbWl6aW5nIHBhbGV0dGUuLi4iOw0KIGNvdXQgPDwgNDsNCiB9DQo=
--------------716EB8E7F4423D1EA1ECEB93
Content-Type: text/plain; charset=us-ascii; name="svga.h"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="svga.h"

// SVGA.H v2

#ifndef SVGA_H
#define SVGA_H

typedef unsigned char byte;
typedef unsigned short int word;
typedef unsigned int lword;

extern "C"
{
 double log(double);  //External log function
 double sqrt(double); //External square-root function
 void *memset(void *buffer, int ch, unsigned long int num);
 }

word ScreenWide, ScreenHigh;

//Function prototypes


int Sn(int th)
{
 if (th>0) return 1;
 if (th<0) return -1;
 return 0;
 }

void Pset(int x, int y, byte Clr, byte *To)
{
 To[ScreenWide * y + x] = Clr;
 }

inline byte Point(int x, int y, byte *To)
{
 return To[ScreenWide * y + x];
 }

class LongPal;

class PP
{
 public:
 byte Red,Green,Blue;

 PP operator = (LongPal);
 PP(LongPal);
 PP() {}
 };
typedef class PP Palette[256];

inline PP operator % (PP One, PP Two)
{
 PP Return;
 Return.Red = ((int)One.Red + (int)Two.Red + 1)>>1;
 Return.Green = ((int)One.Green + (int)Two.Green + 1)>>1;
 Return.Blue = ((int)One.Blue + (int)Two.Blue + 1)>>1;
 return Return;
 }

class LongPal
{
 public:
  float Red, Green, Blue;

  LongPal operator = (PP);
  LongPal operator = (int);
  LongPal(PP);
  LongPal() {}
 };


LongPal LongPal::operator = (int Grey)
{
 Red = Green = Blue = Grey;
 return *this;
 }

LongPal::LongPal(PP One)
{
 *this = One;
 }

PP::PP(LongPal One)
{
 *this = One;
 }

PP PP::operator = (LongPal RValue)
{
 if (RValue.Red>255) RValue.Red=255;
 if (RValue.Red<0) RValue.Red=0;
 if (RValue.Green>255) RValue.Green=255;
 if (RValue.Green<0) RValue.Green=0;
 if (RValue.Blue>255) RValue.Blue=255;
 if (RValue.Blue<0) RValue.Blue=0;

 Red = (byte)(RValue.Red+.5);
 Green = (byte)(RValue.Green+.5);
 Blue = (byte)(RValue.Blue+.5);
 return *this;
 }

LongPal LongPal::operator = (PP RValue)
{
 Red = RValue.Red;
 Green = RValue.Green;
 Blue = RValue.Blue;
 return *this;
 }

LongPal operator / (LongPal One, float Two)
{
 LongPal Return;
 Return.Red = One.Red / Two;
 Return.Green = One.Green / Two;
 Return.Blue = One.Blue / Two;
 return Return;
 }

LongPal operator / (PP One, float Two)
{
 LongPal R;
 R.Red = One.Red / Two;
 R.Green = One.Green / Two;
 R.Blue = One.Blue / Two;
 return R;
 }

LongPal operator * (PP One, double Two)
{
 LongPal R;
 R.Red = One.Red * Two;
 R.Green = One.Green * Two;
 R.Blue = One.Blue * Two;
 return R;
 }

LongPal operator * (LongPal One, double Two)
{
 LongPal R;
 R.Red = One.Red * Two;
 R.Green = One.Green * Two;
 R.Blue = One.Blue * Two;
 return R;
 }

LongPal operator + (PP One, PP Two)
{
 LongPal Return;
 Return.Red = (int)One.Red + (int)Two.Red;
 Return.Green = (int)One.Green + (int)Two.Green;
 Return.Blue = (int)One.Blue + (int)Two.Blue;
 return Return;
 }

inline LongPal operator += (LongPal One, PP Two)
{
 One.Red += Two.Red;
 One.Green += Two.Green;
 One.Blue += Two.Blue;
 return One;
 }

inline LongPal operator /= (LongPal One, float Two)
{
 return (One = One / Two);
 }


void SetPalZero(Palette TemPal)
{
 memset((void*)TemPal,0,256*3);
 }

void CopyPal(Palette PalOne, Palette PalTwo)
{
 memcpy(PalTwo, PalOne, 256*3);
 }

byte* Screen(word Wide, word High)
{
 ScreenWide = Wide;
 ScreenHigh = High;
 return new byte[Wide*High];
 }
#endif

--------------716EB8E7F4423D1EA1ECEB93--



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019