[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Groff] Re: grops and grohtml problems on vista (walter harms)
From: |
Boudewijn |
Subject: |
Re: [Groff] Re: grops and grohtml problems on vista (walter harms) |
Date: |
Mon, 22 Jun 2009 21:31:15 +0200 |
2009/6/22 Ralph Corderoy <address@hidden>
>
> Hi,
>
> If this was Linux, we'd just strace(1) the pipeline and see what the
> kernel was being asked to do for starters. I don't know if something
> like
> http://www.intellectualheaven.com/default.asp?BH=projects&H=strace.htm
> would be any use on Vista. It may show precisely where the temporary
> file is successfully opened and what's happening around the fdopen().
>
> BTW, I noticed src/libs/libgroff/tmpfile.cpp:xtmpfile() never returns a
> NULL
> FILE pointer, it exits if there's a problem, so callers don't need to
> check.
> That means the run of calls to it in src/preproc/html/pre-html.cpp don't
> need
> their following if-statements, e.g. it can be
>
> fclose(xtmpfile(&psPageName, PS_TEMPLATE_LONG, PS_TEMPLATE_SHORT,
> TRUE));
>
> for each of the temporary files it wants the names of.
>
> Cheers,
>
>
> Ralph.
>
>
>
> I just tried StraceNT, here is part of the output generated when grops
encounters 'x init'
[T5140] CreateFileA(34f818, c0000000, 3, 22fcd0, ...) = 104
[T5140] GetFileType(104, 0, 0, 1065, ...) = 1
[T5140] SetFilePointer(104, ffffffff, 0, 2, ...) = ffffffff
[T5140] GetLastError(ffffffff, 22fd2c, 22fcf8, 77122b19, ...) = 83
[T5140] GetLastError(ffffffff, 3, 770ee2d4, 770f4fe0, ...) = 83
[T5140] FlsGetValue(3, ffffffff, 3, 770ee2d4, ...) = 3407d8
[T5140] SetLastError(83, ffffffff, 3, 770ee2d4, ...) = 0
[T5140] GetLastError(ffffffff, 16, 770ea9c5, 770f4ff3, ...) = 83
[T5140] FlsGetValue(3, ffffffff, 16, 770ea9c5, ...) = 3407d8
[T5140] SetLastError(83, ffffffff, 16, 770ea9c5, ...) = 0
[T5140] GetLastError(ffffffff, 22fd2c, 770ee2d4, 77122b28, ...) = 83
[T5140] FlsGetValue(3, ffffffff, 22fd2c, 770ee2d4, ...) = 3407d8
[T5140] SetLastError(83, ffffffff, 22fd2c, 770ee2d4, ...) = 0
[T5140] LeaveCriticalSection(340a80, 22fd48, 7713db33, 3, ...) = 0
[T5140] GetLastError(3, 34f818, 770ea9c5, 420229, ...) = 83
[T5140] FlsGetValue(3, 3, 34f818, 770ea9c5, ...) = 3407d8
[T5140] SetLastError(83, 3, 34f818, 770ea9c5, ...) = 0
[T5140] GetLastError(0, 1, 770ea9c5, 77127c1a, ...) = 83
[T5140] FlsGetValue(3, 0, 1, 770ea9c5, ...) = 3407d8
[T5140] SetLastError(83, 0, 1, 770ea9c5, ...) = 0
[T5140] OutputDebugStringA(77144cc0, 10001, 770ee31e, 22fadc, ...)
Invalid parameter passed to C runtime function.
= 22f168
I don't think the c0000000 is correct, in every other call to CreateFileA
the second parameter is 80000000.
Regards, Boudewijn