спасибо что откликнулись. Да я прописал путь. И проверка не проходила. Ругалась на неизвестную команду. И только когда запускаеш ./ninja --version из дериктории где находиться файл все срабатывает. PS C:\ch32> ./ninja --version 1.12.1 PS C:\ch32> Но чувствую так не должно быть. Путь C:\CH32\ninja.exe\
Help! Поясните поподробнее пункт Установка Ninja. По ссылке я скачиваю ninja-win.zip, распаковываю его, и запускаю на выполнение находящейся там .exe файл. И ничего не происходет. Открывается какое-то окно и мгновенно закрывается. Что я делаю не так?
Оставил здесь инструкцию как подключить VS code и из под него запустить gdb. Ну очень удобно работать. А модераторы взяли и удалили. И кому теперь сказать спасибо.
Хочу поделиться опытом. Я подкдючил VS code к QEMU и сейчас все делаю из него. // xv6-riscv/.vscode/tasks.json { "version": "2.0.0", "tasks": [ { "label": "xv6build", "type": "shell", "isBackground": true, "command": "make qemu-gdb", "problemMatcher": [ { "pattern": [ { "regexp": ".", "file": 1, "location": 2, "message": 3 } ], "background": { "beginsPattern": ".*Now run 'gdb' in another window.", "endsPattern": "." } } ], "group": { "kind": "build", "isDefault": true } } ] }
// xv6-riscv/.vscode/launch.json { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "xv6build", "type": "cppdbg", "request": "launch", "program": "{workspaceFolder}", "miDebuggerPath": "/usr/bin/gdb-multiarch", "miDebuggerServerAddress": "localhost:25000", "MIMode": "gdb", "stopAtEntry": true, "preLaunchTask": "xv6build", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": false } ] } ] }
Ну эти два файлика можно найти в интернете без проблем. Но как у Райкина в миниатюре H2O на пару и не работает. В корневой дирестории появляется файл .gdbinit. В нем надо закомментировать строчку
set confirm off set architecture riscv:rv64 @REM target remote 127.0.0.1:25000 symbol-file kernel/kernel set disassemble-next-line auto set riscv use-compressed-breakpoints yes add-auto-load-safe-path /home/ub24/xv6-riscv dc%sCz5VeB Не знаю что это такое. Вроде не должно быть.
У меня UBUNTU-24. Работает под WSL2 до этого момента все по инструкции. В ubuntu мы находимся в каталоге с xv6. VS code должен быть установлен в Windows. 1 root@Z170M-H3H:/home/ub24/xv6-riscv# code . Точка это часть соманды. Устанавливается VS code сервев и в Windows открывается VS code в папке xv6. В дальнейшем просто печаем code. Точка это часть команды (возможно и без точки можно) 2 ... -> Terminal -> Run Build Task
Executing task: make qemu-gdb *** Now run 'gdb' in another window. qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -global virtio-mmio.force-legacy=false -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 -S -gdb tcp::25000 port 25000 должен быть в launch.json файле
3 Жмем на пиктограмму RUN and Debug и жмем на треугольник. За треугольником должно быть как в файле lanch.json "name": "xv6build",
4 Запускается GDB. Смотреть в Debug Console
Проблема была в строчек в файле .gdbinit. Мне понадибилось две недели бессоных ночей чтобы это понять. Всем УДАЧИ.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Не знаю это небрежность или у меня кривые руки (Я совсем ноль, ну почти). И такая ситуация практически всегда и везде. Для опытных пользователей это просто, а для новичков превращается в мучения. Но мне пришлась в файле run.sh переписать пути CC=/usr/bin/clang OBJCOPY=/usr/bin/llvm-objcopy #CC=/opt/homebrew/opt/llvm/bin/clang #OBJCOPY=/opt/homebrew/opt/llvm/bin/llvm-objcopy
спасибо что откликнулись.
Да я прописал путь. И проверка не проходила. Ругалась на неизвестную команду. И только когда запускаеш ./ninja --version из дериктории где находиться файл все срабатывает.
PS C:\ch32> ./ninja --version
1.12.1
PS C:\ch32>
Но чувствую так не должно быть.
Путь
C:\CH32\ninja.exe\
Help!
Поясните поподробнее пункт Установка Ninja.
По ссылке я скачиваю ninja-win.zip, распаковываю его, и запускаю на выполнение находящейся там .exe файл. И ничего не происходет. Открывается какое-то окно и мгновенно закрывается. Что я делаю не так?
Оставил здесь инструкцию как подключить VS code и из под него запустить gdb. Ну очень удобно работать. А модераторы взяли и удалили. И кому теперь сказать спасибо.
Перед запуском GDB надо установать точку останова (на main в файле main.c например)
Хочу поделиться опытом.
Я подкдючил VS code к QEMU и сейчас все делаю из него.
// xv6-riscv/.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "xv6build",
"type": "shell",
"isBackground": true,
"command": "make qemu-gdb",
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"beginsPattern": ".*Now run 'gdb' in another window.",
"endsPattern": "."
}
}
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
// xv6-riscv/.vscode/launch.json
{workspaceFolder}",
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "xv6build",
"type": "cppdbg",
"request": "launch",
"program": "
"miDebuggerPath": "/usr/bin/gdb-multiarch",
"miDebuggerServerAddress": "localhost:25000",
"MIMode": "gdb",
"stopAtEntry": true,
"preLaunchTask": "xv6build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
]
}
]
}
Ну эти два файлика можно найти в интернете без проблем. Но как у Райкина в миниатюре H2O на пару и не работает.
В корневой дирестории появляется файл .gdbinit. В нем надо закомментировать строчку
set confirm off
set architecture riscv:rv64
@REM target remote 127.0.0.1:25000
symbol-file kernel/kernel
set disassemble-next-line auto
set riscv use-compressed-breakpoints yes
add-auto-load-safe-path /home/ub24/xv6-riscv
dc%sCz5VeB Не знаю что это такое. Вроде не должно быть.
У меня UBUNTU-24. Работает под WSL2
до этого момента все по инструкции.
В ubuntu мы находимся в каталоге с xv6. VS code должен быть установлен в Windows.
1 root@Z170M-H3H:/home/ub24/xv6-riscv# code . Точка это часть соманды. Устанавливается VS code сервев и в Windows открывается VS code в папке xv6. В дальнейшем просто печаем code. Точка это часть команды (возможно и без точки можно)
2 ... -> Terminal -> Run Build Task
Executing task: make qemu-gdb
*** Now run 'gdb' in another window.
qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 128M -smp 3 -nographic -global virtio-mmio.force-legacy=false -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 -S -gdb tcp::25000
port 25000 должен быть в launch.json файле
3 Жмем на пиктограмму RUN and Debug и жмем на треугольник. За треугольником должно быть как в файле
lanch.json "name": "xv6build",
4 Запускается GDB. Смотреть в Debug Console
Проблема была в строчек в файле .gdbinit.
Мне понадибилось две недели бессоных ночей чтобы это понять.
Всем УДАЧИ.
Или может кто из читателей знает как это сделать. Помогите.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Дошел уже до середины второй главы. Но как представлю сколько кода придется вводить в vim-е, а потом исправлять опечатки, то становиться грустно. А можно ли подключить VS code. Было бы замечательно получить подробную инструкцию. Пытался подключить VS code к xv6 на Ubuntu WSL. Вроде бы просто, но мучился неделю и бросил. Заранее спасибо. Думаю многие тоже скажут.
Нажмите Ctrl+A и затем C, чтобы перейти в консоль отладки QEMU (монитор QEMU).
Ctrl+a и затем с
Не знаю это небрежность или у меня кривые руки (Я совсем ноль, ну почти). И такая ситуация практически всегда и везде. Для опытных пользователей это просто, а для новичков превращается в мучения.
Но мне пришлась в файле run.sh переписать пути
CC=/usr/bin/clang
OBJCOPY=/usr/bin/llvm-objcopy
#CC=/opt/homebrew/opt/llvm/bin/clang
#OBJCOPY=/opt/homebrew/opt/llvm/bin/llvm-objcopy
Да книга доступна на английском языке. А google онлине переводчик всем в помощь
https://operating-system-in-1000-lines.vercel.app/en/04-boot