Ответ 1
Если вы в Сьерра, это ожидалось. GDB не совместим с macOS Sierra, даже с последней версией (7.12).
Возможно, нам стоит подождать еще один выпуск GDB или другое обновление для macOS, чтобы устранить ошибку.
Я установил GDB в Mac OS X и проверил, что он работает. Я использовал эту следующую программу на C.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int *my_array = (int *) malloc(5 * sizeof(int));
int i;
for (i = 0; i < 1000000; i++) {
my_array[i] = i;
}
free(my_array);
return 0;
}
У меня есть ошибка при компиляции, которая является нормальной (segmentation fault)
Однако, когда добавляет флаг -g в команду компиляции и запускает gdb в моей скомпилированной программе, у меня есть это сообщение после запуска команды выполнить
During startup program terminated with signal ?, Unknown signal.
На самом деле не знаю, откуда. Я добавил сертификат, чтобы гарантировать корректность работы gdb в OS X, но я не нашел ничего, чтобы исправить эту проблему.
Если вы в Сьерра, это ожидалось. GDB не совместим с macOS Sierra, даже с последней версией (7.12).
Возможно, нам стоит подождать еще один выпуск GDB или другое обновление для macOS, чтобы устранить ошибку.
Из этого ответа: fooobar.com/questions/166448/...
Вот как я легко исправил проблему. [Обновление: на основе полученной обратной связи и еще не подтвержденного, похоже, что это решение работает с macOS Sierra 10.12, но не с macOS Sierra 10.12.2]
Смотрите видео инструкции здесь
Выйти из gdb
Использование текстового редактора, например. Sublime Text, сохраните файл с именем ".gdbinit" [Исключить кавычки] в вашей папке пользователя.
В файле добавьте следующее: "set startup-with-shell off" [Исключить кавычки]
Сохраните файл
gdb теперь должен работать
Источники
fooobar.com/questions/166448/...
https://discussions.apple.com/thread/7684629?start=0&tstart=0
Где находится .gdbinit и как его отредактировать?
Для меня он отлично работал на MacOS Sierra версии 10.12.4, просто удалив и установив gdb как,
$brew удалить gdb
$brew установить gdb
Это установит последний gdb, совместимый с MacOS Sierra.
Надеюсь, что эта помощь кому угодно!
Я установил gdb через Homebrew. В конце установки говорится:
В 10.12 (Сьерра) или позже с SIP вам нужно запустить это:
echo "set startup-with-shell off" >> ~/.gdbinit
Это было необходимо, чтобы заставить его работать. Также я должен был убедиться, что .gdbinit
был установлен в конфигурации Eclipse Debug
Сьерра (10.12), похоже, не поддерживает gdb
. Я попробовал следовать учебнику, в котором мне был создан сертификат. Впоследствии, когда я побежал gdb
, я получил ту же самую ошибку.
Apple использует lldb
. Он работает хорошо и может интегрироваться с Eclipse, мне сказали. Вот ссылка .
Могут быть много причин для этих Неизвестных сигналов 1) Я думаю, что в Linux существует ограничение на максимальный размер памяти. 2) Возможно, ваша система слишком загружена 3) Ваша программа плохо управляет памятью, и вы получаете разбитую память, поэтому malloc не может получить требуемый размер блока. 4) Ваша программа искажает внутренние структуры данных malloc, т.е. Использование плохих указателей