1. Попатчить rust-llvm
2. Попатчить rustc
3. Попатчить gdb
4. Заапстримить патчи из №1 в llvm trunk
5. Пройти ревью
6. Бэк-поритровать и вернуться к пункту 1.
2. Попатчить rustc
3. Попатчить gdb
4. Заапстримить патчи из №1 в llvm trunk
5. Пройти ревью
6. Бэк-поритровать и вернуться к пункту 1.
Причина почему патчат сначала rust-llvm - потому что там можно обкатать изменения
Почему патчим gdb а не lldb - потому что lldb завязан на Си++ и в нем нет плагинов
4 пункт тоже сложен, ведь проходит время и нужно портировать их на новый транк
Прийдя в LLVM Trunk можно обнаружить что нужный уже переписали с нуля и поменяли чуть больше чем все.
и есть шанс что ты запатчил, а потом выяснили что стандарт на DWARF понят неверно
А 6-ой пункт еще включает бэкпорт патчей в rust-llvm :)
В llvm парсинг DWARF на lldb а вот интерпретация на плагине
Подход lldb хорош тем что ты не должен знать другой язык кроме своего