FreeBSD virtual environment management and repository

Внимание! Данные страницы описывают CBSD версии 12.1.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.

Запуск гипервизора bhyve в gdb/lldb через CBSD

Команда bconfig, bconstruct-tui

			% cbsd bconstruct-tui
			% cbsd bconfig
		

В процессе эксплуатации bhyve вы можете столкнуться с проблемами, свойственными любому другому программному обеспечению, которое создал человек. А именно - процесс bhyve может внезапно умереть. Это неприятная ситуация и в идеальном мире не должна существовать. Вы можете приблизить идеальный мир путем исправления данной ошибки, если вы являетесь kernel hacker. Но если вы таким не являетесь, вы все равно можете помочь проекту, оформив максимально информативный отчет об ошибке. В этом нам может помочь возможность CBSD запустить bhyve от дебагера gdb (GNU debuger) или lldb (LLVM). Также, эта возможность будет полезна разработчикам bhyve или в каких-либо других исследовательских работах.

В качестве примера, приведем ситуацию с крешем NetBSD guest, когда вы включаете драйвер xhci. В данном случае мы запустили NetBSD виртуальную машину с опцией lldb и получили backtrace, который отправили в список рассылки NetBSD и bugs.freebsd.org

Для запуска bhyve через дебагер, используйте меню debug_engine в 'cbsd bconfig' и 'cbsd bconstruct-tui' диалогах.

Вы можете выбрать любой вами любимый дебагер, доступный в FreeBSD: gdb и lldb



Разница в запуске через debug_engine от обычного заключается в том, что CBSD в качестве префикса запуска bhyve со всеми аргументами, подставив выбранный вами дебагер. Этот запуск будет происходить не в фоновом режиме, чтобы вы могли видеть и взаимодействовать с дебагером интерактивно.

В процессе запуска вы окажетесь в gdb/ldb и вам необходимо выполнить команду 'run' для запуска виртуальной машины



Если процесс bhyve умрет, у вас будет консоль дебагера где вы можете хотя бы получить backtrace и приложить к вашему письму, чем значительно сможете помочь в решении проблемы