Эльбрус/отладка: различия между версиями
м (→ядро: чуть выделил ветку) |
м (→ядро: +userstack) |
||
Строка 14: | Строка 14: | ||
Возможно включить дополнительную отладку и получить записи о тех же segfault'ах в выводе {{cmd|dmesg -w}}: | Возможно включить дополнительную отладку и получить записи о тех же segfault'ах в выводе {{cmd|dmesg -w}}: | ||
# echo 1 > /proc/sys/debug/sigdebug; echo 1 > /proc/sys/debug/pagefault; echo 1 > /proc/sys/debug/windowregs | # echo 1 > /proc/sys/debug/sigdebug; echo 1 > /proc/sys/debug/pagefault; echo 1 > /proc/sys/debug/windowregs; echo 1 > /proc/sys/debug/userstack | ||
[[Категория:E2K]] | [[Категория:E2K]] |
Версия от 16:10, 13 апреля 2023
Отладка на Эльбрусе
В данном случае особенностями являются не горняшка и виды, а железо и компилятор.
компилятор
При отказе или тем более падении самого компилятора см. как сообщить об ошибке в lcc (по clang предложения пока не наработаны).
Также обратите внимание на примечание по степени полезности отладочной информации в зависимости от наличия оптимизации.
ядро
Ранние ядра (как правило, ветки МЦСТ -1.y, реже -2.y, соответственно -alt[12].y.z) могут иметь недоработки в части управления памятью, которые наиболее охотно отражаются на JIT-машинах (Java, JS, Guile); при необъяснимых выпадениях подобного первым делом проверьте на более новом ядре при его наличии (если по uname -r загружено ядро варианта elbrus-def, попробуйте также mcst-* под конкретный процессор -- они собираются строго по .config из OSL и должны быть почти идентичны сборкам МЦСТ).
SIGILL необходимо трактовать как сигнал о программной ошибке наряду с SIGSEGV или SIGBUS.
Возможно включить дополнительную отладку и получить записи о тех же segfault'ах в выводе dmesg -w:
# echo 1 > /proc/sys/debug/sigdebug; echo 1 > /proc/sys/debug/pagefault; echo 1 > /proc/sys/debug/windowregs; echo 1 > /proc/sys/debug/userstack