- Средства отладки
- Apache JMeter
- ArgoUML
- Assembly Language Debugger (ALD)
- Augmented Traffic Control (ATC)
- Bison
- Buildroot
- 10 лучших отладчиков Linux для разработчиков программного обеспечения
- 1. Отладчик GNU (GDB)
- 2. LLDB
- 3. Немивер
- 4. Интерактивный дизассемблер (IDA)
- 5. Спуск
- 6. Xdebug
- 7. KDbg
- 8. Валгринд
- 9. Отладчик BASH
- 10. strace
- Заключение
- Краткий гайд по использованию GDB
- Подготовка файлов
- Использование GDB
- Русские Блоги
- Инструменты отладки Linux
- оригинал:https://www.cnblogs.com/lidabo/p/4377545.html
- 1. Используйте printf для отладки
- 2. Отладка с помощью gdb
- 3. Программа инструмента статического анализа splint
- 4. Инструмент анализа производительности выполнения программы prof / gprof
- 5. Отладка памяти
- Инструмент отладки языка C на платформе Linux!
- 10.3 Инструменты графической отладки
- Углубленный анализ инструмента отладки Linux lsof
- Инструмент кроссплатформенного анализа захвата веб-пакетов Rythem
- Отслеживание проблем утечки памяти YAGAC
- Трассировщик стека исключений C ++ libcsdbg
- Инструмент отладки программ GDB
- Инструмент визуальной отладки DDD
- Инструмент для отладки программ strace
- Детектор утечки памяти Визуальный детектор утечки
- Средство диагностики времени выполнения Valgrind
- Инструмент графической отладки KDbg
- [Поделиться] Инструмент отладки программ OllyDbg
- Отладчик C / C ++ LLDB
- [Бесплатно] Инструмент отладки оконных приложений Managed Spy
- Инструмент для отладки программ Linux XBuildStudio
- Расширенная версия терминального интерфейса GDB CGDB
- Отладчик EDB (отладчик Эвана)
- Графический отладчик OpenGL BuGLe
- Вспомогательное ПО для разработки программного обеспечения uuSpy
- Инструмент для тестирования ядра Linux CrackerJack
- Инструмент для анализа PE файлов с открытым исходным кодом pev
- Средство обнаружения ошибок памяти на языке C memwatch
- Библиотека C для трассировки программ PinkTrace
- BASH Debugger
- Инструмент отслеживания производительности программы LTTng
- Инструмент отладки программ ltrace
- Отладчик и трекер Linux KGTP
- Библиотека помощника отладки DAL
- Плагин захвата обратного вызова TLS от Ollydbg TLSCatch
- C-библиотека для внедрения ошибок libfiu
- инструмент pstack lsstack
- vim-ruby-debugger
- Компиляция и отладка удаленного GDB BVRDE под windows
- Демо-версия анти-отладки Pafish
- Termdebug
- Инструмент анализа функций памяти LMDBG
- инструмент отладки php ydb
- Распределенный многопоточный инструмент контрольных точек DMTCP
- Сборщик мусора bdwgc
- Инструмент отладки программ C / C ++ libdwarf-dwarfdump
- Интеллектуальная рекомендация
- Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
- Создайте многоканальное окно в приложениях Win32
- Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
- Tree——No.617 Merge Two Binary Trees
Средства отладки
Apache JMeter
Jakarta JMeter — инструмент для проведения нагрузочного тестирования. Хотя изначально JMeter разрабатывался как средство тестирования web-приложений, в настоящее время он способен проводить нагрузочные тесты для JDBC-соединений, FTP, LDAP, SOAP, JMS, POP3, IMAP, HTTP и TCP.
ArgoUML
ArgoUML — среда визуального UML моделирования (англ. Unified Modeling Language — унифицированный язык моделирования, язык графического описания для объектного моделирования в области разработки программного обеспечения).
ArgoUML полностью написан на Java и для работы ему подходит любая операционная система с установленной Java 2 JRE или JDK версии 1.4 или выше.
Assembly Language Debugger (ALD)
Assembly Language Debugger — это инструмент для отладки исполняемых программ на уровне ассемблера. В настоящее время работает только платформе Intel x86. Поддерживаемые операционные системы: Linux, FreeBSD, NetBSD, OpenBSD.
Augmented Traffic Control (ATC)
Инструмент для эмуляции различных беспроводных сетей и тестировании работы приложений в этих сетях.
Bison
GNU bison — программа, предназначенная для автоматического создания синтаксических анализаторов по данному описанию грамматики. Bison — это парсер-генератор общего назначения, преобразующий грамматическое описание контекстно-независимой грамматики LALR(1) в код Си для последующего анализа.
Buildroot
Buildroot — это набор Makefile-ов и патчей, которые позволяют сгенерировать полную встроенную Linux-систему.
Источник
10 лучших отладчиков Linux для разработчиков программного обеспечения
Отладчики необходимы для обнаружения ошибок в программах. Существует множество надежных отладчиков Linux, которые позволяют легко находить слабые места в ваших приложениях. Мы опишем некоторые из этих приложений в этом руководстве. Попробуйте некоторые из этих инструментов, чтобы понять, как работает отладка в Linux.
1. Отладчик GNU (GDB)
В Отладчик GNU, также известный как GDB, является одним из самых мощных отладчиков Linux, доступных современным программистам. Это надежный инструмент с обширным набором функций. GDB имеет встроенную поддержку многих популярных языков программирования, включая C, C ++, Fortran и Java. Он также работает на многих архитектурах ЦП, таких как x86, x86-64, ARM, PowerPC, SPARC и MIPS.
2. LLDB
LLDB является частью проекта LLVM. Он набирает популярность благодаря своей высокой скорости и эффективному рабочему процессу. Он также стал отладчиком по умолчанию для MacOS Xcode и Android Studio. Некоторые из основных функций LLDB включают поддержку различных интеграций компилятора, независимую от языка систему типов и удаленную отладку.
3. Немивер
Немивер — многофункциональный отладчик, написанный на C ++. Он предлагает интуитивно понятную среду графического интерфейса для людей, предпочитающих графические решения. Он легко интегрируется со средой рабочего стола GNOME. Однако это не автономный отладчик Linux. Он использует GDB в качестве бэкэнда и предоставляет графический интерфейс для управления рабочим процессом отладки.
4. Интерактивный дизассемблер (IDA)
Интерактивный дизассемблер или IDA — надежный инструмент для анализа двоичных файлов и программ. Это запатентованное решение, предназначенное для профессионалов и предлагающее множество передовых методов. IDA Pro предоставляет интерактивный, расширяемый и хорошо программируемый отладчик, который можно использовать для криминалистического анализа и автономной проверки. Вы также можете получить бесплатную версию с ограниченными возможностями.
5. Спуск
Спускаться — это простой, но многофункциональный отладчик Linux для языка программирования Google Go. Вы можете использовать его для взаимодействия с вашей программой во время выполнения и управления такими вещами, как горутины и стеки. Сам отладчик написан на Go, что обеспечивает быструю работу.
6. Xdebug
Xdebug — мощный отладчик PHP для Linux. Он предлагает одношаговый компонент отладчика, который можно использовать с IDE. Некоторые из его других функций включают надежный профилировщик, трассировщик стека и возможность выгрузки полного сегмента выполнения. Xdebug легко устанавливается на ваш Linux-компьютер через диспетчер пакетов.
7. KDbg
KDbg — это отладчик с графическим интерфейсом для рабочего стола KDE. Это просто интерфейс для GNU Debugger. Вы получаете все возможности GDB вместе с интуитивно понятным пользовательским интерфейсом. Таким образом, KDbg может быть хорошим выбором для пользователей, которые только начинают отлаживать программы.
8. Валгринд
Валгринд — это надежный отладчик памяти, который предлагает множество дополнительных инструментов для анализа программного обеспечения. Он работает на всех основных платформах, включая Linux и Mac. Более того, вы можете использовать его как основу и создавать инструменты динамического анализа, такие как профилировщики. В целом, Valgrind — отличный выбор для профессионалов благодаря богатому набору функций и лицензированию с открытым исходным кодом.
9. Отладчик BASH
Отладчик BASH или bashdb — простой, но полезный отладчик Linux. Вы можете использовать его для анализа ваших сценариев bash во время выполнения. Работа аналогична отладчику GNU и позволяет пользователям свободно проверять стек. Это отличный инструмент для администраторов Linux, которые постоянно используют сценарии bash в своих системах.
10. strace
Strace — это утилита пользовательского пространства для Unix, которая позволяет пользователям отслеживать системные вызовы и сигналы непосредственно с терминала. Программисты могут использовать его для дампа трассировки стека, фильтрации системных вызовов, изменения кодов возврата, извлечения дескрипторов файлов и многого другого.
Заключение
Широкий спектр мощных отладчиков Linux значительно упрощает программирование. Такие инструменты, как GDB и LLDB, необходимы любому профессионалу. С другой стороны, специализированные отладчики, такие как Delve и Xdebug, нацелены на конкретные проекты и экосистемы.
Теперь, когда у вас есть лучшие отладчики Linux, пришло время найти лучшие дистрибутивы Linux для разработчиков и программистов.
Источник
Краткий гайд по использованию GDB
В этом коротком туториале мы рассмотрим базовые приёмы работы с GDB, а также посмотрим как можно (и нужно) подготавливать файлы к отладке для GDB.
GDB — переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет производить отладку многих языков программирования, включая Си, C++, Free Pascal, FreeBASIC, Ada, Фортран, Python3, Swift, NASM и Rust.
Почему именно GDB? Всё легко, он уже установлен на многих UNIX-подобных системах, лёгок в использовании и поддерживает много языков. Работа с ним оказывается очень лёгкой, а также его можно подключить к VSCode и другим редакторам кода (Включая Vim, NeoVim (ясное дело), Emacs, Atom и далее)
Подготовка файлов
Для примера мы возьмём файлы .cpp и будем проходиться по ним вдоль и поперёк.
Для того чтобы нам пройтись по такому файлу нам нужно скомпилировать его с помощью G++ с использованием флага -g (это действительно важно, без этого флага, программа не будет корректно работать в GDB).
Python-файл вы можете продебажить с помощью этой команды:
Для Java вы просто можете использовать jdb, который уже идёт в комплекте c JDK.
Также, если вам не хочется компилировать всё ручками, вы можете просто использовать сайт OnlineGDB, там просто нужно вставить код и нажать debug, а затем внизу откроется консоль, где вы сможете писать команды.
Использование GDB
Как только мы зашли в GDB нам выводится следующее сообщение:
Последняя строка говорит о том, нормально ли запустился файл.
Теперь нужно посмотреть, где в нашем файле точка вхождения (строка, откуда наша программа начинает свою работу), в случае cpp это метод main() . Находим номер этой строки c помощью команды list и пишем её порядковый номер с буквой b (также можно просто указать имя функции b main тоже работает):
Далее запускаем программу с помощью комманды r :
Также вы можете включить TUI, с помощью комбинации клавиш
Для того, чтобы посмотреть на какой мы сейчас строке, нужно написать f :
Для того, чтобы сделать шаг, нужно нажать n (от слова next):
Как мы видим GDB сразу пропускает пустые строки (или строки с комментариями) и переходит к следующей строке.
Предположим, что у нас есть функция, при нажатии n наш отладчик быстро пройдет функцию, не заходя в неё, чтобы зайти в функцию нужно сделать «шаг внутрь» (step-in) или просто клавиша s :
(В примере нет функции, однако шаг step-in все равно будет работать и с обычными инициализациями, условиями и циклами)
Чтобы узнать какие переменные (локальные) сейчас инициализированны в программе нужно написать комманду info locals :
Чтобы вывести только одну переменную, нужно написать print имя_переменной :
Мы можем также изменить переменную с помощью set :
Мы можем также следить за переменными с помощью watch :
Также, если нужно можно посмотреть что в данный момент находится в регистрах ( info registers ):
Чтобы посмотреть какие в данный момент есть breakpoints (точки останова) нужно написать info breakpoints :
Чтобы удалить точку останова del breakpoint_num :
Чтобы прыгнуть к следующей точке останова нужно нажать c :
Мы можем вызывать функции из программы (локальные) с помощью call :
Чтобы продолжить выполнение функции и остановить программу когда она (функция) завершится нужно написать finish или fin :
Стоит уточнить, что нельзя использовать finish в главном методе.
Чтобы завершить выполнение программы, нужно написать kill :
Также можно написать help в любой момент и получить краткую справку, как пользоваться отладчиком
Источник
Русские Блоги
Инструменты отладки Linux
оригинал:https://www.cnblogs.com/lidabo/p/4377545.html
1. Используйте printf для отладки
Printf(“valriable x has value = %d\n”, x)
Затем добавьте -DDEBUG в параметры компиляции
Более сложные приложения для отладки, такие как:
#define BASIC_DEBUG 1
#define EXTRA_DEBUG 2
#define SUPER_DEBUG 4
#if (DEBUG &EXTRA_DEBUG)
В этом случае, если флаг компилятора установлен на -DDEBUG = 5, будут включены BASIC_DEBUG и SUPER_DEBUG. Флаг -DDEBUG = 0 отключит всю отладочную информацию. Вы также можете добавить в программу следующий оператор:
2. Отладка с помощью gdb
При компиляции Gcc следует добавить параметр -g, чтобы компилятор мог добавлять в программу дополнительную информацию об отладке. В случае официального выпуска отладочную информацию можно удалить с помощью команды strip.
Трассировка стека с обратной трассировкой
3. Программа инструмента статического анализа splint
Проверка здравого смысла и выдача предупреждающих сообщений. Он может обнаруживать ненормальные ситуации, такие как использование неназначенных переменных и неиспользуемых параметров функции.
4. Инструмент анализа производительности выполнения программы prof / gprof
Показывает, для какой операции используется время, затраченное на выполнение.
5. Отладка памяти
Библиотеку функций ElectricFence и valgrind можно использовать для проверки некоторых проблем с динамическим распределением памяти, включая утечки памяти.
Инструменты отладки под Linux
С ростом популярности XP люди уделяют все больше и больше внимания предварительному проектированию, пост-внедрению и тестированию всего программного обеспечения. Естественно, в результате этого процесса получается высококачественное программное обеспечение. Некоторые даже утверждают, что XP устранит отладчик! В этом, конечно, есть смысл, но с учетом нынешних реалий это все еще идеал. В повседневной работе инструменты отладки по-прежнему необходимы. В Linux инструментом отладки является не только gdb, но и множество других инструментов отладки, каждый из которых имеет свои сильные стороны и направленность. В этой статье представлены несколько инструментов отладки, обычно используемых автором:
Язык C / C ++ в основном используется для разработки приложений под Linux. Ошибки памяти, такие как утечки памяти и выход за пределы памяти, несомненно, являются одной из самых неприятных проблем. glibc предоставляет два решения для устранения ошибок памяти:
Один из них — функция управления памятью ловушки. После подключения функции управления памятью вы можете проверить утечку памяти при завершении программы, записав историю выделения памяти, чтобы вы могли обнаружить утечку памяти. Вы также можете написать специальную метку в начале и в конце выделенной памяти, чтобы проверить, не повреждена ли метка при освобождении памяти, так что цель проверки проблемы выхода памяти за пределы может быть достигнута.
Другой метод проще. Glibc уже предоставляет реализацию по умолчанию для первого решения. Все, что вам нужно сделать, это вызвать две функции mtrace / muntrace в определенном месте. Их прототипы функций следующие:
Вы можете спросить, где лучше всего настроить эти две функции? Однозначного ответа нет, это зависит от конкретной ситуации. Для небольших программ mtrace вызывается при входе в main, а muntrace вызывается при выходе из основной функции. Для крупномасштабного программного обеспечения это может записать слишком много информации и будет медленнее анализировать эти записи.В настоящее время вы можете вызывать на обоих концах подозреваемого кода.
Кроме того, вам также необходимо установить переменную среды MALLOC_TRACE, которая представляет собой имя файла, чтобы гарантировать, что текущий пользователь имеет право создавать и записывать файл. Менеджер памяти glibc запишет историческую информацию о распределении памяти в файл, указанный в MALLOC_TRACE.
После запуска программы используйте инструмент mtrace для анализа информации истории распределения памяти, и вы сможете узнать место ошибки памяти (mtrace находится в пакете glibc-utils).
При программировании рекомендуется проверять возвращаемое значение функции. Для стандартных функций C, таких как glibc, недостаточно проверить возвращаемое значение. Вам также необходимо проверить значение errno. Такие процедуры часто бывают длительными и недостаточно краткими. В то же время может быть из-за лени, большинство программ не делают такие проверки.
В такой программе при возникновении ошибки можно использовать отладчик, чтобы шаг за шагом найти ошибку, а затем попытаться выяснить причину ошибки, но это более проблематично. В настоящее время может быть удобнее использовать команду strace. Он может отображать процесс выполнения и результаты различных системных вызовов / сигналов. Например, ошибка открытия файла видна сразу, и даже причина (номер ошибки) известна.
Binutil — это серия инструментов, вы можете даже не знать об их существовании, но без них вы ничего не сможете сделать. Binutil включает следующие инструменты:
- ld — the GNU linker.
- as — the GNU assembler.
- addr2line — Converts addresses into filenames and line numbers.
- ar — A utility for creating, modifying and extracting from archives.
- c++filt — Filter to demangle encoded C++ symbols.
- gprof — Displays profiling information.
- nlmconv — Converts object code into an NLM.
- nm — Lists symbols from object files.
- objcopy — Copys and translates object files.
- objdump — Displays information from object files.
- ranlib — Generates an index to the contents of an archive.
- readelf — Displays information from any ELF format object file.
- size — Lists the section sizes of an object or archive file.
- strings — Lists printable strings from files.
- strip — Discards symbols.
- windres — A compiler for Windows resource files.
Некоторые из этих инструментов чрезвычайно полезны для отладки, например:
Вы можете использовать objdump для дизассемблирования, просмотра внутренней информации целевого файла или исполняемого файла.
Вы можете использовать addr2line для преобразования адреса машины в соответствующую позицию кода.
Вы можете использовать nm для просмотра различных символов в целевом файле или исполняемом файле.
Вы можете использовать gprof для анализа использования каждой функции, чтобы выяснить, где находится узкое место производительности (для этого требуется опция компилятора).
Теперь загрузка исполняемого файла ELF возложена на голову ld-linux.so.2. Вы можете спросить, а какое отношение это имеет к отладчику? несколько. Например, в Linux экспортируются все нестатические функции / глобальные переменные в разделяемых библиотеках.Что еще хуже, в языке C нет концепции пространства имен, что делает имена функций легко конфликтующими. В нескольких совместно используемых библиотеках ошибки, вызванные конфликтами имен, найти труднее. В это время вы можете наблюдать за процессом загрузки исполняемых файлов в ld-linux.so, установив переменную среды LD_DEBUG, и вы можете получить от нее много справочной информации. Значение LD_ DEBUG следующее:
- libs display library search paths
- reloc display relocation processing
- files display progress for input file
- symbols display symbol table processing
- bindings display information about symbol binding
- versions display version dependencies
- all all previous options combined
- statistics display relocation statistics
- unused determined unused DSOs
- help display this help message and exit
Для настоящего отладчика gdb уникален для Linux. Он имеет разнообразную упаковку, символьный интерфейс, графический интерфейс, автономную работу и интегрирован в IDE. Gdb мощен, и графический интерфейс gdb проще в использовании, но эта функция, несомненно, имеет некоторые ограничения. Я считаю, что большинство экспертов по-прежнему желают использовать символьный интерфейс. Gdb слишком распространен, поэтому я не буду здесь об этом говорить.
Я считаю, что многие люди использовали два инструмента, BoundsChecker (Compuware) и Purify (IBM) под win32. Их функции настолько мощны, что их невозможно выполнить, перегружая функцию управления памятью. Они вставляют свой собственный код отладки во время компиляции.
Gcc также имеет расширение, которое реализует более мощные функции проверки, вставляя отладочный код во время компиляции. Конечно, это требует перекомпиляции gcc, вы можете перейти кhttp://sourceforge.net/projects/boundschecking/Загрузите патч gcc. Переносимость очень хорошая, автор применил ее в проекте платформы ARM, эффект хороший.
Лучшее часто видят в последнюю очередь. Valgrind — мой любимый. Я привык к нему. Мне не нужно запускать программу под valgrind, точно так же, как я не писал программу модульного тестирования. Я немного беспокоюсь. Он имеет функцию BoundsChecker / Purify, и он быстрее.
Жалко, что valgrind в настоящее время поддерживает только платформу x86, чего, конечно, достаточно для большинства ситуаций.
Ты можешь пойти вhttp://valgrind.org/Скачайте последнюю версию.
Инструмент отладки языка C на платформе Linux!
Submitted by Nikhil Bhargava on Tue, 02/17/2004 — 14:37. Articles | General Interest
This article talks about debugging tools for applications in C on Linux platforms. Most of the tools are freely available on all major platforms with very wide user support. The tools help in static analysis of code as well as assist in dynamic evaluation of code.
Please note that tools listed here are suggestions of the author. This list is not a standard one. Changes have to be done in it depending upon the nature, scope and details of the application to be developed.
Debugging Tools
The debug memory allocation or Dmalloc library is a freeware debugging tool which has been specially designed as a drop in replacement for the system’s malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. It makes changes during compile time and donot add runtime changes in binary. These facilities include such things as memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics. The library is reasonably portable having been run successfully on at least the following operating systems: AIX, BSD/OS, DG/UX, Free/Net/OpenBSD, GNU/Hurd, HPUX, Irix, Linux, MS-DOG, NeXT, OSF, SCO, Solaris, SunOS, Ultrix, Unixware, Windoze, and even Unicos on a Cray T3E. It has full support for programs the debugging of POSIX threads.
The package includes the library, configuration scripts, debug utility application, test program, and documentation.
Valgrind is a GPL distributed system for debugging and profiling x86-Linux programs. I can also be helpful for programs for platforms other than x86 since behavior of x86 binary is similar to other binaries. The accompanying tools with Valgrind automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making programs more stable. It supports a through detailed profiling to help speed up the programs.
The Valgrind distribution includes four tools: two memory error detectors, a thread errordetector, and a cache profiler.
Electric Fence is a freeware library that can be used for C programming and debugging. It can be linked at compile time and it will warn about possible problems such as freeing memory that doesn’t exist, etc. It is basically a memory profiling tool. However currently it is available only on HP-Unix platform (I am not very sure though).
This is the Gnome Debugger which comes as a freeware support package with freeware Linux distribution like Red Hat, Slacware, and Debian etc. It has full support of many languages like C, C++, and Perl etc. It helps to debug the binaries of these languages in modes like single step, multiple step or complete run. It also has provisions of setting break points and trace value.
It is helpful for stub testing, functional flow checking and bound checking. Further this is readily available with all flavours of Linux andUnix platforms and is amply supported in user community.
Insight is a graphical user interface to GDB, the GNU Debugger written in Tcl/Tk by at Red Hat, Inc. and Cygnus Solutions Insight provides all features provided by GDB along with Graphical debugging interface replacing traditional command based interface.
MemProf is a free ware memory Profiling and memory leak detection tool which comes as an addendum to common Linux distributions. It can generate a profile how much memory was allocated by each function in the program. It can scan memory and find blocks that have been allocated but are no longer referenced anywhere (dead code).
MemProf works by pre-loading a library to override the C library’s memory allocation functions and does not require recompiling the program. One advantage MemProf has over some other similar tools that are available is that it has a nice GUI front-end and is relatively easy to use.
I am Nikhil Bhargava from Delhi, India. I am a Computer Engineer currently working in C-DOT, India for past one year. Comments and Suggestions are always welcome.
10.3 Инструменты графической отладки
Хотя вы можете использовать GDB для большинства (если не для всех) задач отладки Linux, многие люди предпочитают использовать графические инструменты, такие как DDD или Eclipse, а не сидеть в течение длительного времени перед командной строкой GDB. Во всех отношениях, большинство очень модных графических инструментов отладки — это просто абстракция, основанная на GDB, поэтому выбор графического инструмента — это полностью личное хобби.
В этом разделе будут представлены два таких инструмента, конечно, есть много других таких инструментов (включая интерфейс GNU Insight GDB), которые также используются различными группами разработчиков.
Я занимаюсь разработкой приложений для Linux более года. Я чувствую, что это очень нерегулярно и подражает. Я готов систематически изучать разработку для Linux. Прежде всего, начните с изучения инструментов отладки. Ниже приводится введение в инструменты отладки Linux из Интернета, готовые к изучению Использование этих инструментов.
«Если вы хотите преуспеть, вы должны сначала отточить свои инструменты». Теперь мы резюмируем некоторые общие инструменты отладки.
【1】
Имя: MEMWATCH
Функция:
1. MEMWATCH поддерживает ANSI C
2. Предоставляет журнальные записи результатов.
3. Может обнаруживать двойное освобождение
4. Без ошибок
5. Неосвобожденная память (неиспользованная память),
6. Переполнение, потеря значимости и т. д.
Ссылки:
【1】:
http://blog.csdn.net/lengxingfei/archive/2006/08/09/1040800.aspx
【2】
Имя: YAMD
Функция:
1. Найдите динамические проблемы, связанные с распределением памяти в c и c ++
Ссылки:
【1】
http://www.cs.hmc.edu/
【4】
Имя: strace
Функция:
1. Отображение системных вызовов, выполняемых программами пользовательского пространства.
2. Отобразите параметры и возвращаемое значение вызова.
【5】
Имя: gdb
Функция:
1. Запустите программу.
2. Разрешить программе останавливаться в указанном месте указанного файла.
3. Просмотрите значения переменных программы.
4. Измените связанные переменные и пути во время выполнения программы.
【8】
Имя: binutil
Описание: binutil — это набор инструментов, включая следующие инструменты.
addr2line Преобразует адрес программы в имя файла и номер строки. Дайте ему адрес и имя исполняемого файла в командной строке, и он будет использовать отладочную информацию исполняемого файла, чтобы указать, какой файл и номер строки находятся по данному адресу.
ar Создание, изменение и извлечение архивных файлов. Архивный файл — это большой файл, содержащий несколько файлов, и его структура гарантирует, что исходное содержимое файла может быть восстановлено.
as В основном используется для компиляции файлов сборки, выводимых компилятором GNU C gcc, а сгенерированные объектные файлы связываются компоновщиком ld.
c ++ filter Компоновщик использует его для фильтрации символов C ++ и Java, чтобы предотвратить конфликты с перегруженными функциями.
gprof Отображение различных данных сегмента вызова программы.
ld — это компоновщик, который объединяет некоторые цели с архивными файлами, перемещает данные и связывает ссылки на символы. Обычно последний шаг в создании нового компилятора — это вызов ld.
nm Перечислить символы в целевом файле.
objcopy копирует содержимое объектного файла одного типа в объектный файл другого типа.
objdump отображает информацию об одном или нескольких целевых файлах. Отобразить информацию об одном или нескольких целевых файлах. Используйте параметры для управления отображаемой информацией. Информация, которую он отображает, обычно интересна только тем, кто пишет инструменты компиляции.
ranlib создает индекс архивного файла и сохраняет его в этом архивном файле. Распространяемый целевой файл, определенный каждым членом файла архива, указан в индексе.
readelf отображает информацию об исполняемых файлах в формате ebf.
size Укажите размер каждого сегмента целевого файла и общий размер. По умолчанию для каждого объектного файла или каждого модуля в архивном файле создается только одна строка вывода.
strings Распечатайте печатаемые строки файла. Эти строки имеют длину не менее 4 символов. Вы также можете использовать параметр -n, чтобы установить минимальную длину строки. По умолчанию она печатает только печатаемые символы в разделах инициализации и загрузки целевого файла; для других типов файлов она печатает печатные символы всего файла. Эта программа очень полезна для понимания содержимого нетекстовых файлов.
Удалите все или определенные символы в целевом файле.
Libiberty содержит функции, которые используются многими программами GNU. Это программы: getopt, obstack, strerror, strtol и strtoul.
libbfd Библиотека описания двоичных файлов.
libopcodes — это библиотека, используемая для обработки кодов операций, а также при создании некоторых приложений, таких как objdump.Opcodes — это читаемые инструкции по работе процессора в текстовом формате.
Функция: отладка программ, архивирование и т. д.
Ссылки:
【9】
Название: Purify
Функция: инструмент проверки памяти
Ссылки:
【10】
Имя: pc-lint
Функция: средство обнаружения статического кода C / C ++
Ссылки:
【1】
http://dev.yesky.com/134/2593634.shtml
【11】
Название: шина
Описание: splint — это программа, которая динамически проверяет уязвимости безопасности и ошибки в программах на языке C
Функция:
1. Ошибка нулевой ссылки.
2. Ошибка неопределенной переменной
3. Введите ошибку.
4. Проверка памяти
Ссылки:
【1】
http://www.turbolinux.com.cn/turbo/wiki/doku.php?id=splint&DokuWiki=e3b300af2d101a8bec5a4c805e678823
【2】
http://www.splint.org/
【12】
Имя: boundercheck
Функция: проверка на утечку памяти
【13】
Имя: valgrind
Функция:
1. Проверьте наличие ошибок памяти.
Ссылки:
IDA наиболее известен как дизассемблер, который является одним из лучших инструментов для выполнения статического анализа двоичных файлов. Из-за сложности современных методов антистатического анализа люди часто комбинируют статический анализ и методы динамического анализа, чтобы воспользоваться обоими методами. В идеале все эти инструменты объединены в один программный комплекс. Когда Hex-Rays запустила версию 4.5 отладчика IDA, она сделала шаг к консолидации роли IDA как общего инструмента обратного проектирования. В последующих версиях IDA функция отладки была улучшена. В последней версии IDA может выполнять локальную и удаленную отладку на нескольких разных платформах и поддерживает несколько разных процессоров.
Углубленный анализ инструмента отладки Linux lsof
DDD, полное название — Data Display Debugger, для программистов в системе Linux, это мощная визуальная студия в системе Windows, один из немногих инструментов отладки программ в мире Linux с графическим интерфейсом.
Инструмент кроссплатформенного анализа захвата веб-пакетов Rythem
Что такое Rythem? Rythem — это программное обеспечение, похожее на Fiddler. Оно имеет ту же функцию захвата / замены прокси, что и Fiddler. Самым большим отличием от Fiddler является то, что Rythem является кроссплатформенным и открытым исходным кодом. Официальное подробное введение: http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ Ниже приведен снимок экрана с запущенным Rythem: (MacO . Дополнительная информация о Rythem
Отслеживание проблем утечки памяти YAGAC
YAGAC — это библиотека, используемая для связывания с вашей программой на C, позволяющая легко отслеживать утечки памяти в вашем приложении. Согласно вашей части кода. Он отслеживает ваш код и выделяет только память, но не контролирует третью часть библиотеки. У вас может быть несколько сборок мусора. Можно активировать отслеживание для обновления флагов отладки без перезапуска приложения. Его цель — охранять процесс . Дополнительная информация о YAGAC
Трассировщик стека исключений C ++ libcsdbg
libcsdbg — это трассировщик стека исключений C ++. Когда генерируется, перехватывается и обрабатывается исключение, libcsdbg предоставляет инструменты для создания и обработки трассировки стека исключений и распространения пути исключения через стек вызовов. Трассировщик предоставляет функцию, в которой возникло исключение, и дополнительную информацию addr2line (уровень исходного кода) Список функций: сложная трассировка стека исключений (поддержка . Дополнительная информация о libcsdbg
Инструмент отладки программ GDB
GDB (символический отладчик GNU) — это просто инструмент отладки. Это бесплатное программное обеспечение, защищенное Стандартной общественной лицензией или GPL. Как и все отладчики, GDB позволяет вам отлаживать программу, включая остановку программы там, где вы хотите, после чего вы можете просматривать переменные, регистры, память и стек. Далее вы можете изменить переменные . Дополнительная информация о GDB
Инструмент визуальной отладки DDD
GNU DDD (Data Display Debuger) — это графический инструмент для отладки, который обеспечивает очень удобный интерфейс отладки, инкапсулируя команды отладки, такие как GDB, DBX, WDB, JDB, XDB и другие инструменты командной строки.Дополнительная информация DDD
Инструмент для отладки программ strace
strace — это инструмент отладки программ в среде Linux для отслеживания системных вызовов, используемых приложением, и системной информации, которую оно получает. strace — это небольшой полезный инструмент, он может сообщить вам, что программа делает в фоновом режиме, отслеживая системные вызовы. Strace — это базовый инструмент отладки, который уже . Дополнительная информация о strace
Детектор утечки памяти Визуальный детектор утечки
Гибкость и свобода — главные особенности языка C / C ++, и это также создает проблему для программистов C / C ++. Когда программа становится все более сложной, управление памятью усложняется, а небольшая небрежность вызовет проблемы с памятью. Утечки памяти — одна из самых распространенных проблем с памятью. Если утечка памяти не очень серьезна, она не сильно повлияет на программу за короткое время, что также делает внутренние . Дополнительная информация о визуальном детекторе утечки
Средство диагностики времени выполнения Valgrind
Valgrind — это инструмент диагностики времени выполнения, который может отслеживать активность указанной программы и уведомлять вас о различных проблемах управления памятью, которые могут существовать в вашем коде. Он похож на старый инструмент Electric Fence (инструмент заменяет стандартную функцию выделения памяти собственной функцией для улучшения диагностических возможностей), но считается более простым в использовании и во многих отношениях . Дополнительная информация о Valgrind
Инструмент графической отладки KDbg
KDbg — это инструмент с графическим интерфейсом для инструмента отладки gdb (щелкните, чтобы просмотреть увеличенное изображение).Дополнительная информация о KDbg
[Поделиться] Инструмент отладки программ OllyDbg
OLLYDBG — это новый инструмент динамического отслеживания, который сочетает в себе IDA и SoftICE. Отладчик уровня Ring 3 очень прост в использовании. Он заменил SoftICE в качестве самого популярного сегодня инструмента отладки и дешифрования. Он также поддерживает подключаемые расширения. Самый мощный инструмент отладки.Дополнительная информация OllyDbg
Отладчик C / C ++ LLDB
LLDB — это высокопроизводительный отладчик нового поколения, который создает набор повторно используемых компонентов, охватывающий многие библиотеки проектов LLVM, такие как синтаксический анализатор выражений Clang и дизассемблер LLVM. В настоящее время проект все еще находится в стадии предварительной разработки, но было уделено внимание поддержке разработки C / C ++ и Objective-C в Mac OS X. . Дополнительная информация о LLDB
[Бесплатно] Инструмент отладки оконных приложений Managed Spy
Многие разработчики используют инструмент Spy ++, предоставляемый Visual Studio®. Используя Spy ++, вы можете понять структуру окна работающего приложения или определить конкретное оконное сообщение, которое вызвало ошибку. Однако, когда вы создаете приложение на основе платформы Microsoft® .NET, Spy ++ становится менее полезным, потому что Spy ++ перехватывает сообщения форм и классы . Больше управляемой шпионской информации
Инструмент для отладки программ Linux XBuildStudio
Вы все еще используете gdb для медленной отладки программ UNIX / LINUX? XBuildStudio — это инструмент разработки, предназначенный для улучшения разработки программ UNIX / LINUX и отладки программ UNIX / LINUX на платформе WINDOWS.Метод работы аналогичен среде VC, что эффективно повышает эффективность вашей работы.Дополнительная информация о XBuildStudio
Расширенная версия терминального интерфейса GDB CGDB
cgdb можно рассматривать как улучшенную версию терминального интерфейса gdb.По сравнению с визуальной студией под Windows, его функции очень легкие и не слишком сложные, и они могут выполняться в терминале.Дополнительная информация о CGDB
Отладчик EDB (отладчик Эвана)
EDB (Evan’s Debugger) — это инструмент для двоичной отладки, разработанный на основе Qt4. Он в основном разработан в соответствии с инструментом OllyDbg. Функцию можно расширить с помощью системы подключаемых модулей. В настоящее время он поддерживает только Linux и в будущем будет выпускать другие платформы.Дополнительная информация об EDB (отладчике Эвана)
Графический отладчик OpenGL BuGLe
BuGLe сочетает графическую отладку OpenGL с потоком команд OpenGL для выбранных фильтров. Отладчик может просматривать состояние, текстуры, кадровые буферы, шейдеры, а фильтры позволяют вести журнал, проверять ошибки, бесплатно управлять камерой, захватывать видео и т. Д.Дополнительная информация о BuGLe
Вспомогательное ПО для разработки программного обеспечения uuSpy
Инструмент uuSpy очень похож на Spy ++. Кроме того, вы можете просмотреть пароль [***] и даже получить HTML-код Internet Explorer. Используя uuSpy, вы можете узнать структуру запущенной оконной программы. Или отслеживайте конкретное сообщение в окне, которое привело к сбою программы. Вы даже можете вывести стиль / внешний вид указанного окна или выполнить определенные настройки. uuSpy может ссылаться на . Дополнительная информация о uuSpy
Инструмент для тестирования ядра Linux CrackerJack
Проект Crackerjack разрабатывается совместно Китаем, Японией и Южной Кореей. Основная цель проекта — предоставить функции автоматического регрессионного тестирования для ядра Linux, чтобы помочь улучшить качество разработки ядра. Проект включает в себя полную среду автоматического тестирования ядра для обеспечения автоматической загрузки. , Выполнять и управлять тестовыми примерами, включая определение новых процедур тестирования (вариантов использования), устанавливать . Дополнительная информация о CrackerJack
Инструмент для анализа PE файлов с открытым исходным кодом pev
pev — это небольшой инструмент для анализа исполняемых файлов (PE) Windows на основе командной строки, который поддерживает системы Linux, Windows и OSX. В частности, он написан с использованием стандарта ANSI c, поэтому его можно легко скомпилировать на нескольких платформах. pev является бесплатным и открытым исходным кодом.Дополнительная информация о pev
Средство обнаружения ошибок памяти на языке C memwatch
MEMWATCH написан Йоханом Линдом и представляет собой средство обнаружения ошибок памяти на языке C. Пока вы добавляете в код файл заголовка и определяете MEMWATCH в инструкции gcc, вы можете отслеживать утечки памяти и ошибки в программе. MEMWATCH поддерживает ANSI C, он предоставляет записи журнала результатов и может обнаруживать двойное освобождение (double -. Дополнительная информация о memwatch
Библиотека C для трассировки программ PinkTrace
PinkTrace — это облегченный файл библиотеки C, который упрощает написание программ трассировки приложений. Он состоит из инкапсуляции различных запросов ptrace (), API для декодирования параметров (строк, адресов сокетов) и экспериментального API для параметров кодирования. Цель PinkTrace — предоставить кросс-платформенную библиотеку для программ отслеживания. К тому же. Дополнительная информация о PinkTrace
BASH Debugger
Отладчик сценариев оболочки. У нас есть отладчики для bash, python, zsh, ksh, GNU make 3.81 и Python. В исправленных исходных кодах для Make мы обеспечиваем лучшую обработку ошибок и трассировку. Поддержка GNU Emacs включена для всех отладчиков . Дополнительная информация о BASH Debugger
Инструмент отслеживания производительности программы LTTng
Эффективные инструменты трассировки Linux. Это может помочь обнаружить проблемы с производительностью и ошибки в параллельных средах, и даже возможна межсистемная трассировка.Дополнительная информация о LTTng
Инструмент отладки программ ltrace
ltrace — это программа отладки, которая может выполнять указанные команды перед выходом для перехвата и записи вызовов динамических библиотек и процессов приема сигналов. Он также может перехватывать и печатать системные вызовы. Отслеживаемый проект не требует перекомпиляции и может использоваться непосредственно в двоичном файле.Дополнительная информация о ltrace
Отладчик и трекер Linux KGTP
KGTP — это легкий отладчик и трекер Linux в реальном времени. Чтобы использовать KGTP, нет необходимости нажимать PATCH или перекомпилировать ядро Linux, просто скомпилируйте модуль KGTP и выполните его insmod. Это позволяет ядру Linux предоставлять удаленный интерфейс отладки GDB, поэтому GDB на локальном или удаленном хосте может использовать GDB t . Дополнительная информация о KGTP
Библиотека помощника отладки DAL
Библиотека помощника отладки (DAL) — это программная библиотека, используемая для облегчения отладки, с характеристиками кросс-платформенного и унифицированного интерфейса. Основные функции: библиотека помощника для отладки, на разных платформах с единым интерфейсом, поддержка нескольких компиляторов, поддержка многоплатформенных Debug Message Asserti . Дополнительная информация о DAL
Плагин захвата обратного вызова TLS от Ollydbg TLSCatch
TLSCatch — это подключаемый модуль Ollydbg, он может просто перехватить операцию загрузки нового модуля в адресном пространстве текущего процесса и искать в нем tlscallback. Если обратный вызов обнаружен, установите одноразовую точку останова для каждого обратного вызова. Любой обратный вызов tls может быть зафиксирован при анализе вредоносных программ. Скопируйте TLSCatch.dll в каталог плагинов Ollydbg для работы . Дополнительная информация о TLSCatch
C-библиотека для внедрения ошибок libfiu
libfiu — это библиотека C для внедрения ошибок. Он предоставляет коды, используемые для определения «точек отказа» («основной API»), и функции для включения / отключения этих точек отказа («API управления»). Для внутреннего использования основного API требуется код внедрения ошибки. Управляющий API используется для внутреннего тестового кода для управления ошибкой впрыска. libfiu — это библиотека C для ввода ошибок . Дополнительная информация о libfiu
инструмент pstack lsstack
lsstack — это инструмент pstack, реализованный в Linux, изначально в системе solaris. lsstack — это инструмент командной строки. Он может быстро и эффективно распечатать поток и стек вызовов указанного процесса. И символическое имя функции, когда это ar.Дополнительная информация о lsstack
vim-ruby-debugger
vim-ruby-debugger Это плагин для отладки программ Ruby на vim.Дополнительная информация о vim-ruby-debugger
Компиляция и отладка удаленного GDB BVRDE под windows
BVRDE — это «IDE для удаленной компиляции», основная функция которого заключается в предоставлении набора графических интерфейсов в Windows для компиляции и отладки удаленных систем (конечно, BVRDE также поддерживает отладку локальных систем). Отладка программ удобна для пользователей, которые не знакомы с инструментами отладки, такими как GDB, или не любят их, и повышают эффективность работы. BVRDE устанавливается в системе Windows через . Дополнительная информация о BVRDE
Демо-версия анти-отладки Pafish
Pafish — это демонстрационный инструмент, который имитирует несколько методов защиты от отладки (отладчик / виртуальная машина / песочница). Эти методы защиты от отладки часто используются вредоносными программами для вмешательства в работу отладчиков или динамического анализа поведения. (Текст / пулог)Дополнительная информация о Pafish
skpd используется для выгрузки процесса в исполняемый файл ELF и его выполнения.Дополнительная информация о skpd
Termdebug
Termdebug — это набор утилит для записи и воспроизведения ввода и вывода терминальной программы. Его основная цель — помочь в разработке и отладке терминальных программ. Другие проекты, такие как termrec / termplay, nethack-recorder / player и script / scriptreplay, записывают только вывод. Однако при отладке интерактивной программы терминала ввод обычно является более важным выводом. . Дополнительная информация о Termdebug
Инструмент анализа функций памяти LMDBG
LMDBG (облегченный модульный отладчик malloc) предоставляет набор небольших инструментов для сбора и анализа журналов вызовов функций malloc / realloc / memalign / free. LMDBG не предоставляет никакого способа обнаружить границы превышения выделения памяти malloc (). LMDBG может обнаруживать утечки памяти и повторяющиеся релизы. LMDBG может создавать журналы полного стека. . Дополнительная информация о LMDBG
инструмент отладки php ydb
ydb — это инструмент отладки PHP, такой как gdb. Он реализован с расширениями. Вы можете просматривать значения переменных во время работы и выполнять тестирование производительности без каких-либо изменений исходного кода, как и функции, предоставляемые в xdebug и xhprof, но используйте Более удобный ydb также можно назвать инструментом онлайн-отладки, что такое онлайн-отладка? Это онлайн-производство . Дополнительная информация о ydb
Распределенный многопоточный инструмент контрольных точек DMTCP
Большое количество вычислений, таких как высокопроизводительные вычисления / распределенные вычисления, требуют, чтобы программа работала в течение нескольких дней, недель или даже месяцев. Если выполнение программы будет прервано из-за проблем с питанием или неизбежных проблем в течение этого периода, много времени и рабочей силы будет потрачено впустую. В этот период также есть суперкомпьютеры. Стоимость электричества на время. Мы не сталкивались с проблемами питания, но недавно мы столкнулись со сценарием, когда лаборатории нужно сделать . Дополнительная информация о DMTCP
Сборщик мусора bdwgc
bdwgc (консервативный сборщик мусора Boehm-Demers-Weiser) — это сборщик мусора, используемый для замены C malloc или C ++ new. bdwgc также может быть реализован на других языках программирования, но C используется как промежуточный язык преобразования. bdwgc также можно использовать для обнаружения уязвимостей в программах C или C ++. Старый сборщик мусора включает . Дополнительная информация о bdwgc
Инструмент отладки программ C / C ++ libdwarf-dwarfdump
libdwarf может читать или записывать отладочную информацию DWARF в объектных файлах ELF. dwarfdump использует libdwarf для чтения объектных файлов и печати содержимого DWARF в читаемом формате. libdwarf соответствует стандартам DWARF2 и выше. Исходный код включает несколько алгоритмов поиска по дереву (tsearch) (сбалансированный, красно-черный и двоичный). .
Интеллектуальная рекомендация
Пошаговая загрузка файла Spring MVC-09 (на основе файла загрузки клиента Servlet3.0 + Html5)
пример тестовое задание Исходный код Несмотря на загрузку файлов в Servlet3.0 +, мы можем очень легко программировать на стороне сервера, но пользовательский интерфейс не очень дружелюбен. Одна HTML-ф.
Создайте многоканальное окно в приложениях Win32
Создайте многоканальное окно в приложениях Win32, создайте несколько оконных объектов одного и того же класса Windows, а окна объектов разных классов окон. .
Путь к рефакторингу IOS-APP (3) Введение в модульное тестирование
IOS-APP реконструкция дороги (1) структура сетевых запросов IOS-APP реконструкция дороги (два) Модельный дизайн При рефакторинге нам нужна форма, позволяющая вносить смелые изменения, обеспечивая при .
Tree——No.617 Merge Two Binary Trees
Problem: Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new bin.
Источник