I tried to debug, but ended at /usr/src/lyx/lyx-git/src/Exporter.cpp:142
FileMap::const_iterator cit = externalfiles_.find(format);
Here the log:
gdb) b FileName.cpp:690
Breakpoint 1, lyx::support::FileName::createPath (this=0x7fffe3ffe910) at
/usr/src/lyx/lyx-git/src/support/FileName.cpp:690
690 LYXERR(Debug::FILES, "creating path '" << *this << "'.");
(gdb) up
#1 0x0000000000c8d270 in lyx::Buffer::doExport (this=0x218a730, target=...,
put_in_tempdir=false, includeall=false, result_file=...) at
/usr/src/lyx/lyx-git/src/Buffer.cpp:4154
4154 fixedFileName.onlyPath().createPath();
...
(gdb) p fixedName
$4 = {
static npos = <optimized out>,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Alloc_hider:
_M_p = 0x7fffdc0e5538 "/usr/src/lyx/lyx-git/lib/images/math-mode.pdf"
}
}
(gdb) p dest
$2 = {
static npos = <optimized out>,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Alloc_hider:
_M_p = 0x7fffdc0f6688 "/home/kornel/lyx/test/"
}
}
(gdb) p it->exportName
$5 = {
static npos = <optimized out>,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Alloc_hider:
_M_p = 0x7fffdc0e5538 "/usr/src/lyx/lyx-git/lib/images/math-mode.pdf"
}
}
(gdb) p format
$7 = {
static npos = <optimized out>,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Alloc_hider:
_M_p = 0x2f955f8 "luatex"
}
}
(gdb) p fmt
$8 = {
static npos = <optimized out>,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::_Alloc_hider:
_M_p = 0x7fffdc0fcc18 "pdf6"
}
}
...
What I do not understand, why it->exportName references (incorrectly in my
eyes) /usr/src/lyx/lyx-git/lib/images/math-mode.pdf
although dest is set to /home/kornel/lyx/test/. (This is the dir where Math.lyx
lies)
Next try was to stop at Buffer.cpp:4134 (vector<ExportedFile> const files = ...)
only to stop at above mentioned Exporter.cpp.
Please help.
Kornel
Am Montag, 30. März 2015 um 11:26:23, schrieb Kornel Benko <[email protected]>
> Am Sonntag, 29. März 2015 um 23:07:35, schrieb Kornel Benko <[email protected]>
> > This is a recipe to observe creation of files in lyx-source
> >
> > 1.) copy {lyx-source}/lib/doc/Math.lyx to a local directory, say
> > ~/lyx/test/.
> > This is not needed, but shows that the behaviour does not depend on
> > the path of Math.lyx
> > 2.) use your lyx from the build directory to open the file
> > 3.) File->Export->LaTeX(LuaLaTeX)
> >
> > Now go to the lyx-source
> > # git status
> >
> > You see many untracked .pdf files like e.g.
> > lib/images/math-macro-remove-greedy-param.pdf
> >
> > Second scenario with installed lyx. Make sure, the lyx system dirs are not
> > writeable by you
> >
> > 2.) open the file
> > 3.) try the export.
> > Now you are facing a dialog saying some file could not be copied.
> > Click OK.
> > Next dialog pops up.
> > This goes on for 43 files.
> >
>
> Apparently nobody seems interested.
>
> I tried to hunt it down with strace. For each created pdf file there is about
> 3000 lines trace.
> Too big to send, but some interesting lines are there, like
> 8951 open("/usr/src/lyx/lyx-git/lib/images/qt_temp.wv8939",
> O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC, 0600) = 12
> ...
> 8951 rename("/usr/src/lyx/lyx-git/lib/images/qt_temp.wv8939",
> "/usr/src/lyx/lyx-git/lib/images/math-macro-add-greedy-optional-param.pdf") = > 0
> ...
> 8951
> chmod("/usr/src/lyx/lyx-git/lib/images/math-macro-add-greedy-optional-param.pdf",
> 0600) = 0
>
> Looks like use of qt temporary files in lyx source.
>
> OK, try to call lyx -dbg files, to hunt the messages in
> src/support/{TempFile,FileName,filetools}.cpp .
> so here it is:
> support/FileName.cpp (690): creating path
> '/usr/src/lyx/lyx-git/lib/images'.
> support/FileName.cpp (590): Checksumming
> "/tmp/lyx_tmpdir.jloUpnFT9257/lyx_tmpbuf0/42_usr_src_lyx_lyx-git_lib_images_math-macro-add-greedy-optional-param.pdf"
> 2022594892 lasted 1 ms.
> support/FileName.cpp (230): Copying
> /usr/src/lyx/lyx-git/lib/images/math-macro-add-greedy-optional-param.pdf keep
> symlink: 0
> support/FileName.cpp (590): Checksumming
> "/tmp/lyx_tmpdir.jloUpnFT9257/lyx_tmpbuf0/Math.tex" 3063457583 lasted 14 ms.
>
> Kornel
>
signature.asc
Description: This is a digitally signed message part.
