не может одношаговый источник, но сборка одношаговая и точки останова работают нормально - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение C, работающее на встроенном ARM M4; работает правильно.

Я использую Kinetis Design Studio, которая использует gdb, в качестве моего отладчика в Windows.

Для большинства моих .obj я могу пошагово использовать источник C. Однако для некоторых файлов, хотя я могу использовать точки останова, одноступенчатый источник C не работает: нажатие Single-step заставляет отладчик работать так, как будто я нажал Run, но приложение определенно не работает.

Но пошаговая сборка, те же файлы .obj, работает правильно.

Я использую одинаковые параметры компиляции для всех .c

-x c -Wall -Werror -std=c99 -nostdlib -mthumb -mtune=cortex-m4 -mlittle-endian -Wdouble-promotion -DNDEBUG -fdata-sections -ffunction-sections -c -save-temps=obj -g3 -gdwarf-2

ВОПРОС

Для некоторых .obj, почему точки останова и одношаговая сборка работают, а не исходный одношаговый?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы могли бы предоставить больше информации и того, что вы пробовали до сих пор. Например, в чем разница в этих объектных файлах? Это всегда то же самое? Есть ли у них определенные зависимости от не-пользовательского кода или они не-пользовательского кода? Какие у тебя варианты отладчика? Исходя из этого, я могу просто дать базовый совет:

-Проверьте правильность конфигурации вашего файла символов / что они синхронизированы с двоичным файлом и загружены правильно.

-Убедитесь, что после компиляции в исходном коде нет никаких изменений, поэтому IDE не может ошибочно отображать код, который не существует в вашей последней компиляции (который не подлежит отладке).

- Рассмотрите возможность отключения таких опций, как JustMyCode - в зависимости от вашей среды (https://docs.microsoft.com/de-de/visualstudio/debugger/just-my-code?view=vs-2017)

-Проверьте параметры отладчика

...