| www.delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-bounces using -f |
| From: | "Alex Vinokur" <alexvn AT bigfoot DOT com> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: uclock_t & gcc 3.0.4 on Windows-2000 |
| Date: | Mon, 22 Apr 2002 07:58:14 +0200 |
| Organization: | Scopus |
| Lines: | 149 |
| Message-ID: | <aa056g$6n1jt$1@ID-79865.news.dfncis.de> |
| References: | <a9uahn$6ao8i$1 AT ID-79865 DOT news DOT dfncis DOT de> <7458-Sun21Apr2002182355+0300-eliz AT is DOT elta DOT co DOT il> |
| NNTP-Posting-Host: | gateway.scopus.net (62.90.123.5) |
| X-Trace: | fu-berlin.de 1019451409 7046781 62.90.123.5 (16 [79865]) |
| X-Priority: | 3 |
| X-MSMail-Priority: | Normal |
| X-Newsreader: | Microsoft Outlook Express 6.00.2600.0000 |
| X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2600.0000 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
"Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il> wrote in message news:7458-Sun21Apr2002182355+0300-eliz AT is DOT elta DOT co DOT il...
| > From: "Alex Vinokur" <alexvn AT bigfoot DOT com>
| > Newsgroups: comp.os.msdos.djgpp
| > Date: Sun, 21 Apr 2002 15:17:15 +0200
| >
| > start_uclock_ = 35292
| > end_uclock_ = 35306
| > start_uclock_ = -29321
| > end_uclock_ = -29307
| > Assertion failed at xxx.h line 34: start_uclock_ >= 0
| > Exiting due to signal SIGABRT
| > Raised at eip=00007c8e
| > eax=000bf9ec ebx=00000120 ecx=00000000 edx=00000000 esi=00000054 edi=0003fb60
| > ebp=000bfa98 esp=000bf9e8 program=D:\_T02_P~1\a.exe
| > cs: sel=01f7 base=01e80000 limit=000cffff
| > ds: sel=01ff base=01e80000 limit=000cffff
| > es: sel=01ff base=01e80000 limit=000cffff
| > fs: sel=01cf base=00012150 limit=0000ffff
| > gs: sel=020f base=00000000 limit=0010ffff
| > ss: sel=01ff base=01e80000 limit=000cffff
| > App stack: [000bfb60..0003fb60] Exceptn stack: [0003fabc..0003db7c]
| >
| > Call frame traceback EIPs:
| > 0x00007bb4
| > 0x00007c8e
| > 0x000057f9
| > 0x00017cc6
| > 0x0000161b
| > 0x00005278
| > #########################
| >
| > We can see that behavior of uclock_t is not long-long-behavior.
| >
| > Any explanation?
|
| I can suggest two possible explanations:
|
| - the C++ library has a bug when printing long long variables via
| cout (did you try an equivalent C program?);
An equivalent C program usually generates the same result (sometimes it works OK).
###### C code : Source file : BEGIN ######
/* File yyy2.c */
#include <stdio.h>
#include <assert.h>
#include <time.h>
int main()
{
#define TOTAL_TIMES 1000
int i;
uclock_t start_uclock;
uclock_t end_uclock;
for (i = 0; i < TOTAL_TIMES; i++)
{
start_uclock = uclock();
printf ("[%d] start_uclock = %ld\n", i, start_uclock);
fflush (NULL);
assert (start_uclock >= 0);
end_uclock = uclock();
printf ("[%d] end_uclock = %ld\n", i, end_uclock);
fflush (NULL);
assert (end_uclock >= 0);
assert (start_uclock < end_uclock);
}
return 0;
}
###### C code : Source file : END ########
###### Compilation : BEGIN ######
%gcc yyy2.c
###### Compilation : END ########
######## Running : BEGIN ########
%a.exe
[0] start_uclock = 0
[0] end_uclock = 293
[1] start_uclock = 398
[1] end_uclock = 479
[2] start_uclock = 553
[2] end_uclock = 627
[omitted]
[477] start_uclock = 38988
[477] end_uclock = 39027
[478] start_uclock = 39065
[478] end_uclock = 39104
[479] start_uclock = 39142
[479] end_uclock = 39181
[480] start_uclock = -26316
Assertion failed at yyy2.c line 19: start_uclock >= 0
Exiting due to signal SIGABRT
Raised at eip=0000467e
eax=0074febc ebx=00000120 ecx=00000000 edx=00000000 esi=00000054 edi=0000fb60
ebp=0074ff68 esp=0074feb8 program=D:\_T02_P~1\a.exe
cs: sel=01f7 base=017f0000 limit=0075ffff
ds: sel=01ff base=017f0000 limit=0075ffff
es: sel=01ff base=017f0000 limit=0075ffff
fs: sel=01cf base=00012150 limit=0000ffff
gs: sel=020f base=00000000 limit=0010ffff
ss: sel=01ff base=017f0000 limit=0075ffff
App stack: [00750000..006d0000] Exceptn stack: [0000fac0..0000db80]
Call frame traceback EIPs:
0x000045a4
0x0000467e
0x000036f9
0x000016c8
0x00003038
######## Running : END ##########
|
| - uclock tries to reprogram the system timer chip, but Windows 2000,
| being of the NT family, doesn't let you do so.
--
====================
Alex Vinokur
http://up.to/alexvn
http://go.to/alexv_math
mailto:alexvn AT bigfoot DOT com
mailto:alexvn AT go DOT to
====================
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |