这与调试以下问题有关:Plugin (vim-latex) crashing gVim on startup
安装latex-suite后,每次打开.tex文件时,无论是否来自gVim或者终端vim,是否包含\ begin语句,Vim都会立即崩溃。
在反复崩溃后,我能够在状态行中读取Python Traceback字符串,其中提到C:\Python27\lib\site.py
中的第530行(仅包含known_paths = addusersitepackages(known_paths)
),但其余的回溯是不可见,因为状态行显示会截断它,这只会在自动崩溃之前显示片刻。
有没有办法可以更加永久和完整的方式捕获这个Traceback输出,以及从这个插件到Python的方式等等?
(我尝试了-V15filename.log
选项,但它(像往常一样)没用,包含一些部分日志到vim启动过程中的一个古老点。)
编辑:对于之前未提及操作系统的道歉(除了间接通过C:\
路径),此问题出现在Windows上。从另一个相关问题来看,似乎几乎所有在Windows上尝试使用latex-suite的人都遇到了这个问题。
更新:只是一个FTR - 设置verbosefile没有帮助(可能是因为写入是按照文档缓冲的),并且:redir也没有捕获它,结束于此错误和崩溃之前发生的任何操作。
答案 0 :(得分:3)
好的,我把这里作为答案。
这个答案可能有助于解决windows vim中的乳胶插件问题。但是,如果您的问题坚持“在崩溃之前收到错误消息”,它可能不会给您提供帮助。我对Windows操作系统没有多少经验。
Latex Suite插件使用python生成一些格式化文本。它可以带来更好的性能。然而,该插件也提供了无python方式,让用户无需安装python运行时或非常旧的python版本也使用该插件。
既然你提到你的问题是在python代码中。你可以尝试在该插件中禁用python,并测试性能是否可以接受。
该插件为此提供了一个变量,您可以在vimrc中添加此行
let g:Tex_UsePython=0
很高兴看到它有所帮助。
答案 1 :(得分:1)
您是否尝试使用重定向的stderr运行?
vim file.tex &> errors.log
或
vim file.tex 2> errors.log
答案 2 :(得分:1)
1)如果您能够从源代码编译Vim(在Windows上使用MinGW),则可以使用gdb
运行它。然后你可以设置一些断点/检查堆栈跟踪,直到你在崩溃附近检测到一条线。使用gdb
运行Vim并读取堆栈跟踪的说明可在:help debug-gcc中找到。
在该帮助文件(:help get-ms-debuggers)的末尾,您可以找到有关如何获取Windows的某些调试工具的说明。
这些工具可用于以下备选方案,详细解释于:help debug-win32:
2)如果您没有编译Vim,请获取调试符号(PDB),该符号应该从您获取可执行文件的相同位置获得。将Visual Studio连接到Vim进程,重现崩溃,然后通过Visual Studio的对话框读取堆栈跟踪,报告崩溃。
3)与2)相同,但使用WinDbg而不是Visual Studio。
4)检查Minidump file,以防你的崩溃产生一个。除了引用的帮助部分,您可以在以下链接中找到有用的信息:
答案 3 :(得分:0)
如果您在运行Linux的计算机上,是否尝试将strace输出保存在文件中?
strace gvim -V9log.txt file.tex > stdout.txt 2> stderr.txt
然后仔细查看输出文件,特别是最后的10-100行?我不确定它是否会捕获插件的系统调用,但它可能是一个起点。