Где мне искать коды ошибок / прерывания?

Есть ли хорошее место для поиска кодов ошибок при отладке программ c? Например: я получаю сообщение «Прервать ловушку: 6» при запуске одной из моих программ, и я не знаю, что это означает.

Изменить: Это было на Mac, и я ищу ссылку для поиска любого кода ошибки, который появляется, а не только пример, который я привел.


person chf2117    schedule 07.02.2018    source источник
comment
Думаю, это характерно для Windows. Вы должны научиться пользоваться отладчиком. Ваш код делает что-то, что заставляет ОС его убивать. Таким образом, предоставленная информация не о том, где и как ваша программа нарушила правила, она просто сообщает вам, какое правило.   -  person Iharob Al Asimi    schedule 07.02.2018
comment
Также обратите внимание, что это возможный дубликат, прежде чем спрашивать, убедитесь, что вы прочитали и четко отличил его от вашего собственного вопроса, поэтому на него нет того же ответа.   -  person Iharob Al Asimi    schedule 07.02.2018
comment
коды ошибок системы Windows. Достаточно простого поиска в Google.   -  person Alex Quilliam    schedule 07.02.2018
comment
@AlexQuilliam: это коды ошибок в вызовах функций, полученные GetLastError. Я давно не использовал Windows, но не ожидал, что они будут такими же, как коды состояния выхода команды или коды, печатаемые при прерывании программы. Они?   -  person Eric Postpischil    schedule 07.02.2018
comment
@IharobAlAsimi Это было на Mac. Я ищу ссылку, чтобы узнать, какое правило я нарушил   -  person chf2117    schedule 08.02.2018
comment
@ chf2117 С практической точки зрения это не имеет значения. Потому что вам действительно нужно знать, где вы это сделали. А зная, что произошло, будет хорошо заподозрить по тому или иному коду. Но поскольку существует концепция неопределенного поведения, нет никакой пользы в знании того, что означает ошибка, потому что ее причина может быть не напрямую ясна из вашего кода. Я не имею в виду, что вы не должны их знать, я имею в виду, что это не поможет вам так сильно, как вы думаете. Знания, конечно, всегда ценны.   -  person Iharob Al Asimi    schedule 08.02.2018
comment
@ chf2117 Так что вместо того, чтобы узнать, что такое Undefined Behavior, когда это происходит и как этого избежать, вы также автоматически узнаете, что такое SIGSEGV и почему система передает сигнал вашей программе и прекращает его, когда нарушает правила.   -  person Iharob Al Asimi    schedule 08.02.2018


Ответы (1)


Я неправильно понял сообщение об ошибке. SIGABRT определяется как 6, 6 не дает никакой информации о том, что вызвало вызов abort ().

Коды сигналов и краткие описания определены в ‹signal.h>, который находится в /usr/include/sys/signal.h на моей машине. Более подробные описания можно найти на странице https://en.wikipedia.org/wiki/Signal_(IPC)

person chf2117    schedule 08.02.2018