Я отлаживал программу, скомпилированную в Rust с использованием GDB (arm-none-eabi-gdb).В какой-то момент я хотел записать адрес памяти следующим образом:
(gdb) set *((int *) 0x24040000) = 0x0000CAFE
syntax error in expression, near `) 0x24040000) = 0x0000CAFE'.
После нескольких пробных попыток я обнаружил, что я использую стиль C, и мне пришлось преобразовать его в стиль Rust следующим образом:
set *(0x24040000 as *mut i32) = 0x0000CAFE
Мой вопрос заключается в том, как GDB интерпретирует различные команды и почему я получаю эту ошибку.Это потому, что символ (int) не распознается, но как в этом случае GDB загружает символы?Нужно ли GDB компилировать инструкцию на правильный язык исполняемого двоичного файла на цели?