[tex-live] Kpathsea in TL2007
George N. White III
gnwiii at gmail.com
Mon Feb 19 23:44:20 CET 2007
On 2/19/07, Reinhard Kotucha <reinhard.kotucha at web.de> wrote:
> >>>>> "George" == George N White <gnwiii at gmail.com> writes:
> > On some *x systems you can get a complete list using a process
> > trace tool -- is there a similar capability for Windows?
> There is even a portable tool: KPATHSEA_DEBUG=4
You can get a Windows user to replace "pdflatex ..." with "strace
pdflatex ..." but there usually isn't env.exe to set environment
variables as in "env KPATHSEA_DEBUG=4 pdflatex ...". On *X you can
rename pdftex to pdftex.bin and replace pdftex with a wrapper script
that sets environment variables.
Many of the problems I've encountered have been with the user's files,
so I was able to debug things by copying to a *X machine, but there
also cases where the problems with old versions of files on the user's
machine (e.g., copied over from a friend's emtex).
> > ---- but some don't make it easy for to capture the output without
> > using emacs (they seem to write to the raw tty so redirection
> > fails).
> But if emacs can capture stderr it should be possible for other
> programs too. The question is how this can be achieved. This is an
> interesting question because "gs -sDEVICE=bbox" writes output to
> stderr. It's a well known bug and Ghostscript developers have this on
> their TODO list for many years. I suppose that we will have LaTeX3
> and Omega2 before it will be fixed. On the other hand it's annoying
> that Microsoft steals concepts from other operating systems and does
> not implement them properly.
Cmd.exe captures stderr, but throws most of it away and doens't have
> Emacs can also be run in batch-mode, so you can use Emacs-Lisp like
> any other programming language to process files. It's probably not
> easy to read arbitrary stuff (like "pdftex myfile.tex") from the
> command-line because the command line had been interpreted by emacs
> before the elisp script is executed. TeX has the same problem.
> In most cases the -recorder option is sufficient. The first file
> which appears in the output is the format file. KPATHSEA_DEBUG starts
> a bit earlier: it also displays ARGV, texmf.cnf, and ls-R files.
> KPATHSEA_DEBUG is not a replacement for a tool like strace. However,
> I rarely used strace for anything else but tracing fopen() calls. And
> the big advantage of KPATHSEA_DEBUG is that it works with all programs
> which are using kpathsea, also on Windows.
> BTW, KPATHSEA_DEBUG is described in the kpathsea texinfo manual.
> There _is_ something like strace for Windows. Thomas Esser mentioned
> it some time ago but unfortunately I forgot its name.
"Strace works on NT4 SP4, SP5, and SP6; Windows 2000 GA, SP1, SP2, and
SP3, and has preliminary support for Windows XP. On Windows XP, it is
necessary to set the registry key
to REG_DWORD 0. and reboot before using strace.
This disables the kernel from checking for errant memory overwrites,
and is not a good thing, in general. It is currently necessary for
strace because the system call table is write protected, and strace
needs to modify it. Hopefully, a better solution will be found."
George N. White III <aa056 at chebucto.ns.ca>
Head of St. Margarets Bay, Nova Scotia
More information about the tex-live