Linux内核调试:vmdumper <world-id> nmi,死循环调试

来源:互联网 发布:js 解压缩 编辑:程序博客网 时间:2024/04/30 22:07

此种方法只适合vmvare esx管理的虚拟机。

一、设置变量

        设置linux系统参数,使得 向虚拟机发送nmi时,虚拟机可以产生panic,产生core文件:

                echo 1 > /proc/sys/kernel/unknown_nmi_panic

                echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi

        参数含义,参照内核代码文档:documentation/sysctl/kernel.txt。

二、执行死循环,让虚拟机“崩溃”

执行死循环后,虚拟机会一直运行,情况如下:

        1. 占用大量CPU:

                可以在虚拟机管理界面上,通过“报告性能”来查看CPU使用情况,CPU使用率100%。

                “右键”虚拟机 --> “报告性能” 即可将虚拟机性能导出到excel。

                

       2. ping不通该虚拟机:


三、vmdumper向虚拟机发送nmi不可屏蔽中断

       以root登陆虚拟机的管理机:

              esxcli vm process list    查看虚拟机的<world-id>

              vmdumper <world-id> nmi    向虚拟机发送nmi

       此时虚拟机会重启,并产生core文件,就可以登录虚拟机用crash分析core文件了。

参考资料:http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=2079097&sliceId=1&docTypeID=DT_KB_1_1&dialogID=448935018&stateId=0%200%20448933618


0 0
原创粉丝点击