|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
Простая, но неразрешимая (?) проблема сишной отладки на мк19.06.2015, 18:04. Показов 73267. Ответов 160
Метки нет (Все метки)
Допустим, я отлаживаю сишную программу на мк и, много раз нажав на разные кнопки на девайсе и на пк, попадаю-таки на сбойную функцию.
Казалось бы, делов то - исправить и заменить сбойную ф-цию, ну или хотя бы поставить временную заплатку, и продолжить отладку. Но продолжить невозможно - только начинать всё заново - всё перекомпилировать, всё перезалить и снова нажимать на все кнопки. И на следующей сбойной ф-ции опять всё заново, и так тупо по кругу ) Или есть варианты? update Зачеркнул - двусмысленная была фраза ) Вопрос не в том, как надо программировать, чтобы меньше отлаживаться, а всего лишь в том, как изменить программу, не выходя из сеанса отладки.
0
|
|
| 19.06.2015, 18:04 | |
|
Ответы с готовыми решениями:
160
LPC21xx FIO0SET FIOCLR проблема отладки. Регистры FIO0SET FIOCLR не реагируют на запись 1 в режиме отладки HELP!!! Неразрешимая ошибка! Keil 4.73 проблема отладки |
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
||
| 22.06.2015, 09:21 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
|
||
| 22.06.2015, 10:06 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 304
|
|
| 22.06.2015, 10:20 | |
|
Люди скоро станут боятся вопросы задавать. Благодаря вот таким срачам. Ну нафига оно надо? Никто из присутствующих свою точку зрения не изменит. Зато будет простыня на 20 страниц. Мегапрофи упражняются в красноречии.
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 22.06.2015, 10:23 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,044
|
|
| 22.06.2015, 10:26 | |
|
Тот, кто выложил тот лог, поступил меленько, подленько и трусливо. Зарегистрировал ник-однодневку и выложил лог.
Да, я допустил ошибку, что задал вопрос на публичном ресурсе. И что дальше? Я более, чем уверен, что на этом форуме мои оппоненты щеки надувают, а на других ресурсах им и сказать по существу нечего. Троллизм чистой воды. Я никогда не видел, чтобы профессионалы постоянно троллили, читай, гадили, везде, где только можно. Как я и говорил, тот, кто выложил этот лог, сделал большую ошибку. Не просчитал последствия. Дискуссия закончена. Вылез Досикус, все, тема засрана.
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 22.06.2015, 11:30 | |
|
Надо же , да у тебя паранойя милок. Кругом враги и завистники . :)))))))
И насчет троллизма - начни с себя ... :))))))))
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
||||
| 22.06.2015, 11:37 | ||||
вообще, если вы заметили, самые срачи образуются именно тогда, когда приходит "профи" и начинает остальным агрессивно втирать какую-то дичь. не было бы таких "профи", дискуссия проходила бы спокойно.
0
|
||||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 22.06.2015, 11:44 | |
|
Ymk, +100500 ...
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 157
|
||
| 22.06.2015, 12:50 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 22.06.2015, 13:09 | |
|
Ещё один стимул к срачу - когда по теме уже всё основное сказано, а поговорить ещё хочется =)
2 vt340: как, достаточное понимание темы уже появилось? В принципе, можно за разумное время довести задачу до состояния "заменить одну функцию на лету". Вкратце: Надо изменить реализацию функции my_fun. Исходное состояние: 1. Есть собранная программа (исходники, все объектные файлы и бинарник прошивки). 2. Все обращения к my_fun идут через одну точку (например, указатель на эту функцию, хранящийся в массиве указателей) Действия: 1. Выделяем кусок исходника с my_fun. Оставляем в нём только саму функцию + подключение хедеров. Если функция использует какие-то глобальные переменные - объявляем их как extern, если другие функции - пишем для них декларации. Таким образом, этот исходник можно будет скомпилировать. 2. Заменяем в нём имя функции на my_fun_hacked. Допустим, получили в итоге файл my_fun_hacked.c 3. Компилируем полученный модуль - получаем объектный файл my_fun_hacked.o 4. Правим таблицу импорта (ну, то единственное место, через которое вызов my_fun шёл) 5. Линкуем программу: все ранее использовавшиеся объектники + my_fun_hacked.o Для линковки надо составить линкер скрипт или просто список файлов так, чтобы my_fun_hacked прилинковалась в самый конец. Возможно, тут будут сложности, но вряд ли что-то нереализуемое. Возможно, придётся в linker ssript явно указать адрес размещения новой функции (чтобы какие-нибудь глобальные данные не сдвинулись). Да, нежелательно включать опцию "dead code elimination". В результате все ранее использовавшиеся функции останутся на своих местах, и my_fun_hacked будет использовать именно их. Большая проблема - если понадобилось задействовать какие-то библиотечные функции, которые ранее не были прилинкованы. 6. Получили новый бинарник, который по большей части совпадает со старым, отличаясь одним указателем и одним новым куском кода в конце. Выделяем изменения, патчим флеш. Да, возможны некоторые упрощения: например, можно не делать переход через таблицу символов, а прописать переход на my_fun_hacked в бинарнике или объектнике прямо поверх первых байтов my_fun. Сработает, если только мы в момент замены не находились именно в этом месте или внутри вызова из этого места ещё куда-то.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
| 22.06.2015, 15:55 | |
|
вручную это сделать, наверное, можно, а как это засунуть в ide?
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 22.06.2015, 18:39 | |
|
Полноценно, чтобы всё делалось автоматически? Крайне сложная задачка (хотя и решаемая: MS в Visual Studyo справилась же).
А если ограничиться заменой одной функции, да потребовать поддержки от программиста (выделить блоки с требуемыми ymstude и с самой функцией, чтобы файл с этими двумя блоками компилился) - то ещё можно побарахтаться самостоятельно... (вызов сторонней тулзы из среды, sed для вырезания нужных кусков исходника и правки имени, скрипты для перелинковки и т.п.)
0
|
|
|
1 / 1 / 0
Регистрация: 14.02.2013
Сообщений: 408
|
|
| 22.06.2015, 19:16 | |
|
Как-то всё сложно и ненужно. Большинство с установкой и настройкой проекта еле справляется. Да и в чём облегчение, если ручонками и мозгами нужно шарить направо и налево творя добро, не заскучаешь.
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 22.06.2015, 19:38 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 157
|
||
| 22.06.2015, 20:12 | ||
PS: запасся попкорном и демотиваторами в ожидании дальнейших реакций на красную тряпку с тремя заветными буквами...
0
|
||
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
||
| 22.06.2015, 20:38 | ||
кстати, можно же и без таблиц адресов делать - патчить первую команду старой функции на переход на новую. потом новую на более новую.
0
|
||
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
| 22.06.2015, 20:43 | |
|
а можно, чтобы не мутить с кастрацией исходника, сделать чтобы каждая функция компилилась в свою секцию, файл просто пересобрать, потом с objcopy скопировать в новый объектник только одну нужную секцию и прилинковать ее к старой версии (+патч старой функции)?
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
||
| 22.06.2015, 20:47 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 22.06.2015, 20:49 | |
|
Да, вероятно, так даже проще будет (но потом придётся из объектника извлечь только нужную секцию и переименовать функцию в ней, чтобы при линковке осталась и старая функция, и новая). Но наверняка ещё куча граблей и ограничений всплывёт - не зря Apple отказалась от поддержки Edit omd Continue.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
||
| 22.06.2015, 21:18 | ||
0
|
||
| 22.06.2015, 21:18 | |
|
Проблема отладки локальных переменных Наименьшее расстояние, проблема отладки Atmel Studio 6. Проблема запуска в режиме отладки Исполняемый файл для отладки, указанный в профиле отладки, не существует Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|