0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: c++, open source, инструменты, язык си</p>
1
<p>Теги: c++, open source, инструменты, язык си</p>
2
<p>Предлагаем вашему вниманию краткий обзор инструмента gdbgui. Это современный браузерный GDB (GNU-отладчик), предназначенный для языков программирования C, C++, Rust и Golang. С его помощью вы сможете просматривать трассировку стека, добавлять контрольные точки и многое другое. Работать с таким инструментом очень просто: достаточно выполнить запуск gdbgui из терминала, в результате чего в вашем браузере откроется новая вкладка.</p>
2
<p>Предлагаем вашему вниманию краткий обзор инструмента gdbgui. Это современный браузерный GDB (GNU-отладчик), предназначенный для языков программирования C, C++, Rust и Golang. С его помощью вы сможете просматривать трассировку стека, добавлять контрольные точки и многое другое. Работать с таким инструментом очень просто: достаточно выполнить запуск gdbgui из терминала, в результате чего в вашем браузере откроется новая вкладка.</p>
3
<h2>Особенности установки</h2>
3
<h2>Особенности установки</h2>
4
<p>Установка выполняется следующим образом:</p>
4
<p>Установка выполняется следующим образом:</p>
5
<p>1.Для ОС<strong>Linux</strong>:</p>
5
<p>1.Для ОС<strong>Linux</strong>:</p>
6
sudo pip install gdbgui -upgrade<p>2.Для ОС<strong>macOS</strong>:</p>
6
sudo pip install gdbgui -upgrade<p>2.Для ОС<strong>macOS</strong>:</p>
7
sudo pip install gdbgui --upgrade -user<p>Кстати, может появиться ошибка следующего типа:</p>
7
sudo pip install gdbgui --upgrade -user<p>Кстати, может появиться ошибка следующего типа:</p>
8
please check gdb is codesigned - see taskgated(8)<p>В таком случае вам помогут<a>инструкции отсюда</a>.</p>
8
please check gdb is codesigned - see taskgated(8)<p>В таком случае вам помогут<a>инструкции отсюда</a>.</p>
9
<p>3.Для ОС<strong>Windows</strong>:</p>
9
<p>3.Для ОС<strong>Windows</strong>:</p>
10
pip install gdbgui -upgrade<p>Тут нужно отметить, что пользователям virtualenv префикс sudo не нужен. Также можно клонировать репозиторий:</p>
10
pip install gdbgui -upgrade<p>Тут нужно отметить, что пользователям virtualenv префикс sudo не нужен. Также можно клонировать репозиторий:</p>
11
git clone https://github.com/cs01/gdbgui cd gdbgui pip install -r requirements.txt gdbgui/backend.py<h2>Особенности запуска</h2>
11
git clone https://github.com/cs01/gdbgui cd gdbgui pip install -r requirements.txt gdbgui/backend.py<h2>Особенности запуска</h2>
12
<p>Для запуска выполняем:</p>
12
<p>Для запуска выполняем:</p>
13
gdbgui [бинарный файл для отладки]<p>В результате в вашем браузере появится новая вкладка с инструментом gdbgui, о чём мы уже упоминали вначале.</p>
13
gdbgui [бинарный файл для отладки]<p>В результате в вашем браузере появится новая вкладка с инструментом gdbgui, о чём мы уже упоминали вначале.</p>
14
<h2>Особенности работы</h2>
14
<h2>Особенности работы</h2>
15
<p>Рассмотрим ряд рабочих нюансов: • отладчик каждой программы будет открываться в отдельной вкладке (то есть для каждой вкладки будет создаваться новый GDB-экземпляр); • можно устанавливать или удалять контрольные точки; • можно просматривать стек; • можно оценивать произвольные выражения и устанавливать их значения с течением времени; • вы без проблем просмотрите все регистры; • встроен анализатор исходного кода, имеющий возможность перехода на указанную строку; • возможен показ ассемблерного кода вблизи исходников, возможно выделение текущей инструкции; • есть уведомления о доступности обновлений.</p>
15
<p>Рассмотрим ряд рабочих нюансов: • отладчик каждой программы будет открываться в отдельной вкладке (то есть для каждой вкладки будет создаваться новый GDB-экземпляр); • можно устанавливать или удалять контрольные точки; • можно просматривать стек; • можно оценивать произвольные выражения и устанавливать их значения с течением времени; • вы без проблем просмотрите все регистры; • встроен анализатор исходного кода, имеющий возможность перехода на указанную строку; • возможен показ ассемблерного кода вблизи исходников, возможно выделение текущей инструкции; • есть уведомления о доступности обновлений.</p>
16
<h2>Плюсы gdbgui</h2>
16
<h2>Плюсы gdbgui</h2>
17
<p>Инструмент имеет ряд преимуществ: • нет ничего лишнего, он предназначен только для отладки программ; • дизайн создан под влиянием отладчика Chrome; • инструмент написан на Python и JavaScript; •<a>gdbgui</a>бесплатен, а его исходный<a>код открыт</a>.</p>
17
<p>Инструмент имеет ряд преимуществ: • нет ничего лишнего, он предназначен только для отладки программ; • дизайн создан под влиянием отладчика Chrome; • инструмент написан на Python и JavaScript; •<a>gdbgui</a>бесплатен, а его исходный<a>код открыт</a>.</p>
18
<p><strong>Пример кода на C++</strong>:</p>
18
<p><strong>Пример кода на C++</strong>:</p>
19
#include <iostream> #include <vector> #include <map> int main(void) { std::cout << "Hello World" << std::endl; std::cout << "Example vector" << std::endl; std::vector<double> myvector {}; myvector.push_back(1.1); myvector.push_back(2.2); myvector.push_back(3.3); myvector.push_back(4.4); for (auto i : myvector){ std::cout << i << " is an element in a vector" << std::endl; } std::cout << "Example map" << std::endl; std::map<char,int> mymap; mymap['a'] = 10; mymap['b'] = 30; mymap['c'] = 50; mymap['d'] = 70; for (auto i : mymap){ std::cout << i.first << " is a key in a map with a value of " << i.second << std::endl; } return 0; }<p>Если интересуют другие примеры кода и make-файлы для C ++, вам<a>сюда</a>.</p>
19
#include <iostream> #include <vector> #include <map> int main(void) { std::cout << "Hello World" << std::endl; std::cout << "Example vector" << std::endl; std::vector<double> myvector {}; myvector.push_back(1.1); myvector.push_back(2.2); myvector.push_back(3.3); myvector.push_back(4.4); for (auto i : myvector){ std::cout << i << " is an element in a vector" << std::endl; } std::cout << "Example map" << std::endl; std::map<char,int> mymap; mymap['a'] = 10; mymap['b'] = 30; mymap['c'] = 50; mymap['d'] = 70; for (auto i : mymap){ std::cout << i.first << " is a key in a map with a value of " << i.second << std::endl; } return 0; }<p>Если интересуют другие примеры кода и make-файлы для C ++, вам<a>сюда</a>.</p>
20
20