|
Hard Fault Exception на кортексе м3, как узнать откуда прилезло |
|
|
|
 |
Ответов
|
Mar 31 2017, 14:01
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(jcxz @ Mar 31 2017, 16:11)  Читайте выше. Из соответствующих регистров можно прочитать реальный адрес где произошёл fault. В смысле мне себя почитать? Цитата(Шаманъ @ Mar 31 2017, 12:38)  Вывалились в обработчик посмотрели регистры, вернулись обратно (так сказать с комфортом) и посмотрели как содержимое регистров использовалось в момент вылета. Цитата(Forger @ Mar 31 2017, 16:39)  В подавляющем большинстве подобных случаев в этой злополучной строке будет обращение по указателю, особенно с приведением к другому типу. Например, как тут: Код if(--(*(MyClass*)p) ) Я обычно в таких случаях смотрю ассемблерный код - это намного продуктивнее.
|
|
|
|
|
Mar 31 2017, 14:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Шаманъ @ Mar 31 2017, 17:01)  Я обычно в таких случаях смотрю ассемблерный код - это намного продуктивнее. А я под словом "продуктивный" понимаю такой код, который вообще исключает всякую необходимость рыться в "белье" компилятора  Сложные выражения предпочитаю разбить на примитивные, так и отлаживать проще. Зачастую это в итоге вынуждает переписать код, отказавших от мудреных конструкций со "звездочками". В итоге это экономит кучу времени, которое в ином случае было бы потрачено на поиск причин трудноуловимых багов.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Mar 31 2017, 15:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Шаманъ @ Mar 31 2017, 17:35)  Но раз уж отлавливаем faultы, то смысл заглянуть в ассемблер есть. Честно, мне было бы вломы рыться в том, что там наделал компилятор на мою кривую конструкцию. По мне быстрее и проще переписать саму кривую конструкцию, на которой вылезает fault, иначе этот fault вылезет в другом месте .... Но если бесконечный поиск fault-ов и ковыряние в ассемблере - это некое хобби, то это меняет дело
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Mar 31 2017, 16:08
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Forger @ Mar 31 2017, 18:04)  Честно, мне было бы вломы рыться в том, что там наделал компилятор на мою кривую конструкцию. У меня конструкции обычно достаточно прямые, чтобы код (в смысле сгенерированный компилятором) легко читался. Цитата Но если бесконечный поиск fault-ов и ковыряние в ассемблере - это некое хобби, то это меняет дело  Не надо передергивать. За последние пол года могу вспомнить только два случая, оба решились в течении пары минут.
|
|
|
|
|
Mar 31 2017, 16:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Шаманъ @ Mar 31 2017, 19:08)  У меня конструкции обычно достаточно прямые, чтобы код (в смысле сгенерированный компилятором) легко читался. Не надо передергивать. За последние пол года могу вспомнить только два случая, оба решились в течении пары минут. Ну, это у вас заняло всего пару минут и, полагаю, что вы можете позволить себе полистать ассемблерный код под хорошую сигару и стаканчик коньяка у теплого камина, так сказать, в удовольствие  Однако, я сильно сомневаюсь, что это можно сказать про того, кто готов заводить целые темы только лишь ради поиска тривиальной причины fault-а (я не про ТС конкретно, а воообще, в целом). Потому и ваша рекомендация "заглянуть в ассемблерный код", по-моему, звучит несколько надменно что ли ... Впрочем, не лучше звучат и мои персто-указующие назидания  зы. Что-то тема пошла не в то русло ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
klen Hard Fault Exception на кортексе м3 Feb 4 2010, 10:37 klen проблему я пофиксил - SNTP клиент косячил. все пре... Feb 4 2010, 17:12 AHTOXA Вот так у меня сработало:
Кодvoid hard_fault_hand... Feb 5 2010, 11:23  klen очень хорошо будем смотреть в "бубен около ко... Feb 5 2010, 14:45   AHTOXA Цитата(klen @ Feb 5 2010, 19:45) только с... Feb 5 2010, 14:58    klen уря уря уря!!!
naked действительно во ... Feb 5 2010, 15:23 juvf Выпадаю в Hard Fault Exception. описал обработчик... Feb 25 2014, 18:54 AHTOXA Судя по
Цитата(juvf @ Feb 26 2014, 00:54... Feb 26 2014, 11:30  jcxz Цитата(AHTOXA @ Feb 26 2014, 17:30) Судя ... Feb 27 2014, 02:20   AHTOXA Цитата(jcxz @ Feb 27 2014, 08:20) Почему ... Feb 27 2014, 05:21    jcxz Цитата(AHTOXA @ Feb 27 2014, 11:21) Потом... Feb 27 2014, 06:09     Сергей Борщ Цитата(jcxz @ Feb 27 2014, 08:09) Адрес в... Feb 27 2014, 06:56      jcxz Функции как вызываются? Правильно: обычно через BL... Feb 27 2014, 07:48       Сергей Борщ Цитата(jcxz @ Feb 27 2014, 09:48) BL что ... Feb 27 2014, 09:51        jcxz Цитата(Сергей Борщ @ Feb 27 2014, 15:51) ... Feb 27 2014, 11:42     AHTOXA Цитата(jcxz @ Feb 27 2014, 12:09) Адрес в... Feb 27 2014, 08:46      jcxz Цитата(AHTOXA @ Feb 27 2014, 14:46) Судя ... Feb 27 2014, 09:11       AHTOXA Цитата(jcxz @ Feb 27 2014, 15:11) И что? ... Feb 27 2014, 10:54        jcxz Цитата(AHTOXA @ Feb 27 2014, 16:54) Потом... Feb 27 2014, 11:51         juvf Цитата(jcxz @ Feb 27 2014, 16:51) если ад... Feb 27 2014, 12:05          jcxz Цитата(juvf @ Feb 27 2014, 18:05) ну адре... Feb 27 2014, 12:50           juvf Цитата(jcxz @ Feb 27 2014, 17:50) Если у ... Feb 27 2014, 13:03         AHTOXA Цитата(juvf @ Feb 27 2014, 17:48) Думаю, ... Feb 27 2014, 15:00          jcxz Цитата(AHTOXA @ Feb 27 2014, 21:00) При т... Feb 28 2014, 02:32           AHTOXA Цитата(jcxz @ Feb 28 2014, 08:32) Вот тол... Feb 28 2014, 04:36            jcxz Я с вами тоже Feb 28 2014, 05:59 juvf спасибо.
перед 0x8002c09 такой код
КодLDR R1, ... Feb 26 2014, 12:28 AHTOXA Цитата(juvf @ Feb 26 2014, 18:28) перед 0... Feb 26 2014, 12:54 Axel Цитата(juvf @ Feb 26 2014, 16:28) Подозре... Feb 26 2014, 14:00 MALLOY2 Если это иар и используется его алокатор, то вам h... Feb 26 2014, 12:47 ViKo При прерываниях адрес возврата сохраняется в стек ... Feb 27 2014, 05:51 juvf Думаю, что я нашел граблю. я в одном потоке делаю ... Feb 27 2014, 11:48 juvf Давайте жить дружно Feb 28 2014, 09:14 juvf stm32L052 падает в HF
пытаюсь сделать обработчик ... Mar 30 2017, 15:27 AHTOXA Цитата(juvf @ Mar 30 2017, 20:27) Error[O... Mar 30 2017, 16:10 jcxz Цитата(juvf @ Mar 30 2017, 17:27) препроц... Mar 30 2017, 17:03  juvf Цитата(jcxz @ Mar 30 2017, 22:03) Препроц... Mar 31 2017, 03:34 Obam А что, на брейкпойнте в точке входа в HF и под JTA... Mar 31 2017, 07:46 juvf Цитата(Obam @ Mar 31 2017, 12:46) А что, ... Mar 31 2017, 08:30  Шаманъ Цитата(juvf @ Mar 31 2017, 11:30) По мойм... Mar 31 2017, 09:02   jcxz Цитата(Шаманъ @ Mar 31 2017, 11:02) Тогда... Mar 31 2017, 09:13    Forger Цитата(jcxz @ Mar 31 2017, 12:13) Вот тут... Mar 31 2017, 09:17    ViKo Цитата(jcxz @ Mar 31 2017, 12:13) У Corte... Mar 31 2017, 09:32     jcxz Цитата(ViKo @ Mar 31 2017, 11:32) А не на... Mar 31 2017, 09:46      ViKo Цитата(jcxz @ Mar 31 2017, 12:46) Не обяз... Mar 31 2017, 10:07       jcxz Цитата(ViKo @ Mar 31 2017, 12:07) Этот вы... Mar 31 2017, 10:17      Шаманъ Цитата(jcxz @ Mar 31 2017, 12:46) Не обяз... Mar 31 2017, 10:31       jcxz Цитата(Шаманъ @ Mar 31 2017, 12:31) Вы пр... Mar 31 2017, 13:11        ViKo Цитата(jcxz @ Mar 31 2017, 16:11) Читайте... Mar 31 2017, 13:37         jcxz Цитата(ViKo @ Mar 31 2017, 15:37) Только ... Mar 31 2017, 14:34       Forger Цитата(Шаманъ @ Mar 31 2017, 13:31) Но, п... Mar 31 2017, 13:39    Шаманъ Цитата(jcxz @ Mar 31 2017, 12:13) У Corte... Mar 31 2017, 09:38 ViKo Можно. Только, когда ошибка появляется в рабочем п... Mar 31 2017, 08:14 Forger Цитата(ViKo @ Mar 31 2017, 11:14) Можно. ... Mar 31 2017, 09:08 Obam "…в рабочем приборе, вдалеке от отладчика…... Mar 31 2017, 08:26 ViKo Цитата(Obam @ Mar 31 2017, 11:26) "…... Mar 31 2017, 08:38 ViKo Будем считать, что мне везло, и я всегда попадал и... Mar 31 2017, 10:34
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|