Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-09-27 07:19:42


"Victor A. Wagner Jr." <vawjr_at_[hidden]> writes:

> I've had to remove mingw from my regression testing since it's
> creating .lib files which cause bjam to "except" when running the
> tests. I can see _what_ the problem is, but not _why_ it is. Here's
> the call stack (well what appears relevant... the top when the error
> occurs)
>
> bjam.exe!_chvalidator(int c=-128, int mask=8) Line 56 + 0x2a
> bytes C
> > bjam.exe!file_archscan(char * archive=0x02fd82c0, void (void
> *, char *, int, long)* func=0x00412400, void *
> closure=0x00500458) Line 266 + 0x36 bytes C
> bjam.exe!timestamp(char * target=0x02fd86e0, long *
> time=0x0097ab8c) Line 164 + 0x15 bytes C
> bjam.exe!search(char * target=0x00b3247c, long *
> time=0x0097ab8c, char * * another_target=0x00000000) Line
> 130 + 0xd bytes C
> bjam.exe!bind_explicitly_located_target(void *
> xtarget=0x0097ab64, void * data=0x00000000) Line 165 + 0x14
> bytes C
> bjam.exe!hashenumerate(hash * hp=0x004ffd08, void (void *,
> void *)* f=0x0040f9d0, void * data=0x00000000) Line 251 +
> 0xe bytes C
> bjam.exe!bind_explicitly_located_targets() Line 176 + 0x12
> bytes C
> bjam.exe!make(int n_targets=1, const char * *
> targets=0x0012f6bc, int anyhow=0) Line 128 C
> bjam.exe!main(int argc=0, char * * argv=0x003213c0, char * *
> arg_environ=0x00321470) Line 434 + 0x15 bytes C
>
>
> Here's a memory dump of the variable "name"...note the two \n\n near
> the end (just before the FD FD FD FD) and NO trailing '\0' to stop
> the strlen()
>
> 0x02FD9EA8 65 78 65 63 75 74 69 6f 6e 5f 6d 6f 6e 69 74 6f execution_monito
> 0x02FD9EB8 72 2e 6f 62 6a 2f 0a 75 6e 69 74 5f 74 65 73 74 r.obj/.unit_test
> 0x02FD9EC8 5f 70 61 72 61 6d 65 74 65 72 73 2e 6f 62 6a 2f _parameters.obj/
> 0x02FD9ED8 0a 75 6e 69 74 5f 74 65 73 74 5f 6c 6f 67 2e 6f .unit_test_log.o
> 0x02FD9EE8 62 6a 2f 0a 75 6e 69 74 5f 74 65 73 74 5f 6d 6f bj/.unit_test_mo
> 0x02FD9EF8 6e 69 74 6f 72 2e 6f 62 6a 2f 0a 75 6e 69 74 5f nitor.obj/.unit_
> 0x02FD9F08 74 65 73 74 5f 72 65 73 75 6c 74 2e 6f 62 6a 2f test_result.obj/
> 0x02FD9F18 0a 75 6e 69 74 5f 74 65 73 74 5f 73 75 69 74 65 .unit_test_suite
> 0x02FD9F28 2e 6f 62 6a 2f 0a 73 75 70 70 6c 69 65 64 5f 6c .obj/.supplied_l
> 0x02FD9F38 6f 67 5f 66 6f 72 6d 61 74 74 65 72 73 2e 6f 62 og_formatters.ob
> 0x02FD9F48 6a 2f 0a 0a fd fd fd fd 80 00 1a 00 dd 00 dd 06 j/..ýýýý€...Ý.Ý.
> 0x02FD9F58 d8 f6 fd 02 78 01 32 00 dd dd dd dd dd dd dd dd Øöý.x.2.ÝÝÝÝÝÝÝÝ
>
> Further debug information available upon request. It would be nice to
> get the mingw tests back in my testing...this system has a fair chunk
> of free time right now.

http://tinyurl.com/5vwpf seems to indicate that we can fix it by changing

 if( !isspace(*endname) && *endname != '\\' && *endname != '/' )

to

 if( (unsigned)(c + 1) > 256 || !isspace(*endname) && *endname != '\\' && *endname != '/' )

in tools/build/jam_src/filent.c

Could you try making that change and letting us know how it works out?

(BTW, this also indicates that you're using a debug build of bjam.
Maybe we should change things so people get a release build? could
speed up testing)

Thanks,

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk