Нужно ли знать сборку для отладки программ, написанных на C? - PullRequest
5 голосов
/ 06 октября 2011

Я изучаю C с помощью "языка программирования C", 2-е издание, а также выполняю каждое упражнение.

Нужно ли мне знать ассемблер для отладки программ на C, которые я написал в качестве решения упражнений для книг?

Кроме того, какой отладчик вы порекомендуете?

Ответы [ 8 ]

5 голосов
/ 06 октября 2011

Вам не нужно , чтобы знать ассемблер для программирования на C, включая отладку. Однако, если вы знаете сборку, C начинает иметь большой смысл; это действительно помогает иметь некоторые понятия сборки (предпочтительно, некоторые понятия для нескольких различных архитектур, таких как x86 и ARM), а не только для отладки.

2 голосов
/ 06 октября 2011

Нет, вам не нужно знать сборку, чтобы выучить C.

Что касается отладчиков, возможно, самый простой выбор - использовать отладчик, встроенный в используемую IDE. В Windows популярна Microsoft Visual Studio (есть бесплатная версия ). Eclipse - еще один популярный выбор, доступный на ряде платформ.

Существуют также отладчики командной строки, такие как gdb , но с ними будет труднее начать работу, чем с графическим интерфейсом.

2 голосов
/ 06 октября 2011

Это не обязательно, но иногда очень полезно.Если вы используете MSVC ++, просто используйте тот, что в IDE, он также может показывать разборку.

1 голос
/ 06 октября 2011

Вам не нужно изучать ассемблер, если вы собираетесь отлаживать свои собственные программы.Компиляторы могут встраивать информацию об исходном коде в исполняемый файл (флаг -g с GCC) или в сторонний файл (семейство флагов /Z с MSVC).

Начать работу с отладчиком несложно (даже есливы используете командную строку 1), и в Интернете есть множество ресурсов.Это инвестиция, которая даст вам наибольшую отдачу.

Тем не менее, владение языком ассемблера иногда может оказаться полезным.Иногда необходимо (редко) смотреть на сборку, сгенерированную компилятором, когда вы хотите проверить, как выполняются некоторые оптимизации.Но об этом не стоит беспокоиться, если у вас нет особой работы.

1 голос
/ 06 октября 2011

Когда вы компилируете с флагом GCC -g2 или -g3, вы можете отлаживать свою программу с помощью GDB. Здесь вы можете найти краткое руководство по использованию GDB http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html, а здесь вы найдете несколько более обширное руководство http://www.delorie.com/gnu/docs/gdb/gdb_toc.html

1 голос
/ 06 октября 2011

Нет, asm не требуется, но полезно, как говорили другие, использовать отладчик ... Чего не сказали другие, так это того, что вы могли бы даже использовать GDB, но убедитесь, что вы отключили оптимизацию компилятора, иначе отладка может быть сложной.

1 голос
/ 06 октября 2011

Для пошаговой отладки может быть полезно, но не обязательно, знать сборку.Это также зависит от отладчика, если это действительно необходимо.

Но есть и другие способы отладки программы, например, установка вызовов printf() в стратегических местах.

0 голосов
/ 06 октября 2011

Нет, нет. Microsoft Visual Studio имеет хороший отладчик. Другие варианты: Код :: Блоки или Затмение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...