Debugging 如何在Virtualbox GUI工具中启动调试模式?

Debugging 如何在Virtualbox GUI工具中启动调试模式?,debugging,vagrant,virtual-machine,virtualbox,Debugging,Vagrant,Virtual Machine,Virtualbox,我一直在玩Xubuntu的VirtualBox实现。我正在学习使用VBoxManage和Vagrant为测试盒提供内容。不幸的是,我的盒子工作非常不稳定。我想在VirtualBox中启用调试模式,以便更好地理解为什么框有时会冻结 当前顶部菜单:VirtualBox虚拟机/机器/视图/输入/设备/窗口/帮助。我希望能够进入/Debug/top菜单,选择VirtualBox图形用户输入GUI工具中显示的统计信息/命令行/日志记录/显示日志,[选择虚拟机->设置->用户界面。] 据我所知,我正在寻找。

我一直在玩Xubuntu的VirtualBox实现。我正在学习使用VBoxManage和Vagrant为测试盒提供内容。不幸的是,我的盒子工作非常不稳定。我想在VirtualBox中启用调试模式,以便更好地理解为什么框有时会冻结

当前顶部菜单:VirtualBox虚拟机/机器/视图/输入/设备/窗口/帮助。我希望能够进入/Debug/top菜单,选择VirtualBox图形用户输入GUI工具中显示的统计信息/命令行/日志记录/显示日志,[选择虚拟机->设置->用户界面。]

据我所知,我正在寻找。我已经找到了说明书,但对我来说毫无意义

可以通过三种方式启用调试器:

直接使用VirtualBox-startvm启动VM,并添加一个 -dbg、-debug或-debug命令行参数

设置VBOX\u GUI\u DBG\u启用或VBOX\u GUI\u DBG\u自动显示环境 在启动VirtualBox进程之前,将变量设置为true。背景 这些变量只有在检查其存在时才有效 当第一个VirtualBox进程是VM选择器窗口时。虚拟机 随后从选择器启动将具有调试器 启用

在启动之前,将GUI/Dbg/Enabled额外数据项设置为true 虚拟机。这可以全局设置,也可以基于每个VM设置

我知道如何用两种方式启动虚拟箱。1打开虚拟盒GUI,单击感兴趣的机器,然后启动它。2从包含自定义vagrant文件的文件夹启动该框,然后启动$vagrant

从上面的Virtualbox链接中,我不清楚如何设置vagrant或VBoxManage或Virtualbox GUI以启用调试模式启动一个框,或者更好的是,在构建自定义框时启用调试模式。。。。我不敢相信有人构建了一个漂亮的GUI,却忽略了在工具中实现调试的机会

注意:我使用MacOS作为主机;我很幸运地使用bsoots/xubuntu-16.04-desktop-amd64作为我的来宾虚拟机盒的基础。以前有人来过这里吗?关于如何在启用调试的情况下启动方框的提示和提示?非常感谢

解释得稍微好一点,但我认为只有Windows 7。。。。有3种方法:

1-从命令行窗口启动VBox添加所列选项。有关运行的命令行方法,请参阅VBox用户手册。它的优点是每台机器一个命令行,缺点是:命令行很长,最好是在Windogs:BAT或CMD的情况下从shell脚本发出

2-声明环境变量: 我在Windows 7 64位Enterprise下尝试了一些,在这里我声明了用户环境变量VBOX_GUI_DBG_ENABLED和VBOX_GUI_DBG_AUTO_SHOW Computer/Properties/Advanced System Settings/environment variables,当我启动VM时重新启动Virtual Box GUI后,它将进入调试控制台。我的虚拟机是x86_64,和许多其他内核调试器一样,这一个对于单步执行ROM BIOS(至少是初始部分)是毫无用处的。我太懒了,不知道我是否可以在ROM BIOS被RAM重新定位到RAM之后或者在引导加载程序中设置断点。首先,我必须找到这个VM是否以及如何重新定位BIOS,然后在哪里是进入引导加载程序的最佳位置,这是自定义的;但我在过去用类似的调试器做过类似的事情,这似乎是从oled Compusoft的CodeView x86内核调试器借用的东西

3'-修改VBox全局或每台机器配置文件,我没有尝试过,但我跟踪了全局文件: %homedisk%:\Users\%username%.VirtualBox\VirtualBox.xml 这很简单,我假设添加列出的项目应该是%homedisk%通常是C,用%username%代替登录名

3-修改单个VM的文件*.vbx。它们位于%homedisk%:\Users\%username%\VirtualBox虚拟机中 *.vbox文件是XML格式,查找数据添加位置也很简单。这种方法的优点是对虚拟机进行备份,缺点是可能会将虚拟机搞砸,因此需要进行备份

我在家里的iMac上安装了VirtualBox,但我还没有尝试过。我没有深入研究Mac上的VirtualBox文件结构,但如果它们与Windows不太相似,我会感到惊讶。命令行应该非常相似,当然路径也会不同,shell脚本也是如此,一个可能的麻烦可能是您可能不得不使用sudo

不管是哪台主机,调试x86_64的初始启动序列并不简单,因为通常在开始时,我们会将时间旅行到80年代,并假设我们正在运行386,其中包含两个级联PIC和一个键盘控制器的扩展地址线控制器。。。非常有趣!或者不…

解释得稍微好一点,但我认为只有Windows 7。。。。有3种方法:

1-从co启动VBox M命令行窗口添加列出的选项有关运行命令行方法,请参见VBox用户手册。它的优点是每台机器一个命令行,缺点是:命令行很长,最好是在Windogs:BAT或CMD的情况下从shell脚本发出

2-声明环境变量: 我在Windows 7 64位Enterprise下尝试了一些,在这里我声明了用户环境变量VBOX_GUI_DBG_ENABLED和VBOX_GUI_DBG_AUTO_SHOW Computer/Properties/Advanced System Settings/environment variables,当我启动VM时重新启动Virtual Box GUI后,它将进入调试控制台。我的虚拟机是x86_64,和许多其他内核调试器一样,这一个对于单步执行ROM BIOS(至少是初始部分)是毫无用处的。我太懒了,不知道我是否可以在ROM BIOS被RAM重新定位到RAM之后或者在引导加载程序中设置断点。首先,我必须找到这个VM是否以及如何重新定位BIOS,然后在哪里是进入引导加载程序的最佳位置,这是自定义的;但我在过去用类似的调试器做过类似的事情,这似乎是从oled Compusoft的CodeView x86内核调试器借用的东西

3'-修改VBox全局或每台机器配置文件,我没有尝试过,但我跟踪了全局文件: %homedisk%:\Users\%username%.VirtualBox\VirtualBox.xml 这很简单,我假设添加列出的项目应该是%homedisk%通常是C,用%username%代替登录名

3-修改单个VM的文件*.vbx。它们位于%homedisk%:\Users\%username%\VirtualBox虚拟机中 *.vbox文件是XML格式,查找数据添加位置也很简单。这种方法的优点是对虚拟机进行备份,缺点是可能会将虚拟机搞砸,因此需要进行备份

我在家里的iMac上安装了VirtualBox,但我还没有尝试过。我没有深入研究Mac上的VirtualBox文件结构,但如果它们与Windows不太相似,我会感到惊讶。命令行应该非常相似,当然路径也会不同,shell脚本也是如此,一个可能的麻烦可能是您可能不得不使用sudo


不管是哪台主机,调试x86_64的初始启动序列并不简单,因为通常在开始时,我们会将时间旅行到80年代,并假设我们正在运行386,其中包含两个级联PIC和一个键盘控制器的扩展地址线控制器。。。非常有趣!或者不是…

所以我在64位Win7 Enterprise上尝试了更多的东西Virtual Box 5.2.20 r125813

方法3每台机器ExtraDataItem:不执行任何操作,甚至不向VM窗口添加“调试”菜单

方法3“全局ExtraDataItem:将“调试”菜单添加到VM窗口,但不会在VM开始时中断VM正在运行,您可以打开调试控制台并停止它,但随后我们当然会深入到启动过程中,或者在。。。。但它可能是有用的。。。将“调试”作为默认设置没有坏处

方法1:工作但不按说明进行,即使在VBox自己的用户手册中被混淆,第261页描述的选项也是错误的。然而,第8章给出了一些想法,我们开始: 可以将环境变量添加到命令行:

C:\Program Files\Oracle\VirtualBox>vboxmanage startvm "SomeVM" -E VBOX_GUI_DBG_AUTO_SHOW=true -E VBOX_GUI_DBG_ENABLED=true
将显示“调试”菜单,打开调试窗口并加载重置向量处暂停的VM

VBOX\u GUI\u DBG\u ENABLED=true 只需将“调试”添加到VM将运行的VM窗口

VBOX\u GUI\u DBG\u AUTO\u SHOW=true 单独加载虚拟机将暂停,但没有“调试”菜单,因此实际上无需执行任何操作。。。但是,这可以与全局设置配对

手册和在线中关于变量只需定义的注释是不正确的,除非设置为真,否则它们没有任何明显的影响

顺便说一句:ExtraDataItem行是:

<ExtraDataItem name="GUI/Dbg/Enabled" value="true"/>
我决定设置它:这样所有的虚拟机都启用了“Debug”菜单,但像往常一样启动,如果我想从一开始就调试一个,那么我使用命令行
-E VBOX\u GUI\u DBG\u AUTO\u SHOW=true

所以我在64位Win7 Enterprise上尝试了更多的东西Virtual Box 5.2.20 r125813

方法3每台机器ExtraDataItem:不执行任何操作,甚至不向VM窗口添加“调试”菜单

方法3“全局ExtraDataItem:将“调试”菜单添加到VM窗口,但不会在VM开始时中断VM正在运行,您可以打开调试控制台并停止它,但随后我们当然会深入到启动过程中,或者在。。。。但它可能是有用的。。。将“调试”作为默认设置没有坏处

方法1:工作但不按说明进行,即使在VBox自己的用户手册中被混淆,第261页描述的选项也是错误的。然而,第8章给出了一些想法,我们开始: 可以将环境变量添加到命令行:

C:\Program Files\Oracle\VirtualBox>vboxmanage startvm "SomeVM" -E VBOX_GUI_DBG_AUTO_SHOW=true -E VBOX_GUI_DBG_ENABLED=true
将显示“调试”菜单,打开调试窗口并加载重置向量处暂停的VM

VBOX\u GUI\u DBG\u ENABLED=true 只需将“调试”添加到VM将运行的VM窗口

VBOX\u GUI\u DBG\u AUTO\u SHOW=true 单独加载虚拟机会暂停,但没有“调试”菜单,所以实际上什么都没有 要做什么。。。但是,这可以与全局设置配对

手册和在线中关于变量只需定义的注释是不正确的,除非设置为真,否则它们没有任何明显的影响

顺便说一句:ExtraDataItem行是:

<ExtraDataItem name="GUI/Dbg/Enabled" value="true"/>
我决定设置它:这样所有的虚拟机都启用了“Debug”菜单,但像往常一样启动,如果我想从一开始就调试一个,那么我使用命令行
-E VBOX\u GUI\u DBG\u AUTO\u SHOW=true

我很好奇。。。你为什么不编辑你的第一个答案--附加编辑--等等?这上面有多个学校。。。添加、替换。。大多数论坛都使用add范式。。也许替换更好。。。但显然不是这样…我很好奇。。。你为什么不编辑你的第一个答案--附加编辑--等等?这上面有多个学校。。。添加、替换。。大多数论坛都使用add范式。。也许替换更好。。。但显然不是这样。。。