我正在使用mac osx附带的系统vim(7.2)(目前为10.6.7)。我主要使用rails.vim进行rails开发。
随机地,当我尝试使用ctrl -n vim自动填充一个单词时会出现段错并退出。是什么原因引起了这个?或者我如何开始研究导致这种情况的任何想法?我无法让它可靠地崩溃,但它经常发生。
以下是mac控制台应用中显示内容的简短剪辑
Process: vim [34386]
Path: /usr/bin/vim
Identifier: vim
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: zsh [34284]
Date/Time: 2011-08-28 15:22:56.168 +0800
OS Version: Mac OS X 10.6.7 (10J869)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000100500000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
*** error for object 0x1004fa928: incorrect checksum for freed object - object was probably modified after being freed.
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libSystem.B.dylib 0x00007fff832af5d6 __kill + 10
1 vim 0x0000000100119eb3 0x100000000 + 1154739
2 libSystem.B.dylib 0x00007fff832c166a _sigtramp + 26
3 libSystem.B.dylib 0x00007fff832af5d6 __kill + 10
4 libSystem.B.dylib 0x00007fff8334fcd6 abort + 83
5 libSystem.B.dylib 0x00007fff8333e90d szone_error + 519
6 libSystem.B.dylib 0x00007fff83265d2b tiny_malloc_from_free_list + 144
7 libSystem.B.dylib 0x00007fff83264fdd szone_malloc_should_clear + 242
8 libSystem.B.dylib 0x00007fff83264eaa malloc_zone_malloc + 82
9 libSystem.B.dylib 0x00007fff832631a8 malloc + 44
10 vim 0x0000000100099826 0x100000000 + 628774
答案 0 :(得分:1)
时间
收集系统信息
ldd $(which vim)
uname -a
获得一个coredump(在linux上,你可能需要做ulimit -c unlimited
)
或者,在调试器中运行vim
gdb $(which vim)
(gdb) break main
(gdb) run file1.txt
(gdb) break abort
(gdb) break assert
(想想要监控的其他事情)
收到断点/信号时:
(gdb) bt
(gdb) info threads
(gdb) thread apply all bt
(gdb) bt full
(gdb) thread apply all bt full
将相关输出发送到vim错误列表(在vim中执行:he bugs
以获取详细步骤。)
当然,一旦使用vim包(和它的依赖项)安装调试符号,堆栈跟踪的输出将大大改善。我不知道如何在Mac上做到这一点,sry