Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
GDB - это отладчик для C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada и Modula-2.
CentOS основан на RHEL (Red Hat Enterprise Linux). Одна из основных целей RHEL - стать стабильной серверной операционной системой, а это означает, что новые версии программных пакетов не всегда доступны.
На момент написания этой статьи CentOS 6 предлагает GDB v7.2. Однако команда GDB недавно выпустила код для v7.91.
Официально предлагается запустить другой дистрибутив Linux, чтобы использовать более новую версию GDB. Это не всегда идеально. К счастью, в CentOS 6 можно установить более новые версии GDB. Поскольку GDB является отладчиком, а не компонентом ядра системы, использовать новую версию довольно безопасно.
В этой статье объясняется, как установить поддерживаемые и неподдерживаемые версии GDB в CentOS 6.
Я также объясню, как настроить GDB, чтобы предоставить вам более легкую для чтения отладочную информацию при использовании стандартной библиотеки C ++ (например, строки) и стандартной библиотеки шаблонов (например, вектора). Эта функция называется красивая печать.
Войдите в свой VPS. Это можно сделать, щелкнув «View Console» на панели управления Vultr или с помощью клиента SSH.
(a) Войдите в систему как root.
(б) Создайте свою учетную запись. Установите пароль.
adduser <username>
passwd <username>
(c) Предоставить пользователю доступ sudo.
visudo
After the line "root ALL=(ALL) ALL"
Add the line "<username> ALL=(ALL) ALL"
--- If you aren't familiar with vi, go to the line "root ALL=(ALL) ALL".
--- Hit "o" to create a new line after that line and enter insert mode.
--- Type "<username> ALL=(ALL) ALL".
--- Hit ESC.
--- Type "ZZ" to save.
(d) Выйдите из системы как пользователь root, затем войдите в систему под своей учетной записью. Гораздо безопаснее никогда не входить в систему как root. Использование sudo - лучшая практика.
Установите GDB.
sudo yum install gdb
Проверьте установленную версию и посмотрите ее местоположение.
gdb --version
May say: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
which gdb
/usr/bin/gdb
Установите компилятор C, такой как GCC. Компилятор C ++ не нужен для сборки GDB из исходного кода, но необходим для демонстрации привлекательной функции печати GDB. Вы можете собрать более свежую версию GCC из исходного кода, выполнив шаги, описанные в статье ��ак установить GCC на CentOS 6 . Или вы можете установить официально поддерживаемую версию GCC CentOS 6, выполнив:
sudo yum install gcc gcc-c++
Установите дополнительно необходимые пакеты.
sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
Решите, какую версию GDB вы хотите собрать из исходного кода. Посетите FTP-сайт GDB, чтобы увидеть версии, доступные для загрузки.
Получите источник версии GDB, которую вы хотите. Остальная часть этой статьи написана для v7.9.1 и будет загружать исходные коды ~/sourceInstallations/gdb-7.9.1/
- вам придется заменить правильный номер версии для более новых версий.
mkdir ~/sourceInstallations
cd ~/sourceInstallations
wget ftp://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz .
tar -zxvf gdb-7.9.1.tar.gz
Сборка ГБД. Если это завершится правильно, последняя строка, которую вы увидите, будет говорить «успех». Это нормально, когда некоторые сообщения с ошибками прокручиваются быстро. Это безопасно игнорировать.
mkdir gdb-7.9.1.build
cd gdb-7.9.1.build
../gdb-7.9.1/configure --with-python=yes && make && sudo make install && echo success
--- If your VPS has multiple cores, you can speed up the build by changing the middle part
--- of this line from "&& make &&" to "&& make -j <number of cores> &&".
--- You can see the number of cores your VPS has by running "nproc"
--- The parameter "--with-python=yes" is necessary for the pretty printing feature
Установите красивую печать C ++.
cd ~/
svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python gdb_printers
Create a file ~/.gdbinit of:
python
import sys
sys.path.insert(0, '/home/<yourUserName>/gdb_printers/')
from libstdcxx.v6.printers import register_libstdcxx_printers
end
--- One way to create this file is to run "vi ~/.gdbinit", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
Проверьте установленную версию и ее местоположение.
gdb --version
May say: GNU gdb (GDB) 7.9.1
which gdb
/usr/local/bin/gdb
При желании запустить GDB и увидеть красивую печать.
mkdir ~/gdbExample
cd ~/gdbExample
Create a file gdbExample.cpp of:
#include <string>
#include <vector>
using namespace std;
int main() {
string foo = "bar";
vector<string> vec;
vec.push_back("foo");
vec.push_back("bar");
vec.push_back("foobar");
}
--- One way to create this file is to run "vi gdbExample.cpp", hitting "i" to enter insert mode,
--- typing the above file, hitting ESC, and hitting "ZZ" to save.
g++ -ggdb gdbExample.cpp -o gdbExample
Start GDB traditionally, by running "gdb ./gdbExample". Or, start GDB by using its terminal user interface (basically a text mode GUI), by running "gdb --tui ./gdbExample".
Enter "break main" to set a breakpoint at the beginning of function main() -- and it will say:
Breakpoint 1 at 0x<someAddress>: file gdbExample.cpp, line 6.
Enter "run" to start the program, which will immediately hit the breakpoint you just set -- and it will say:
Starting program: /home/<yourUserName>/gdbExample/gdbExample
Breakpoint 1, main () at gdbExample.cpp:6
6 string foo = "bar";
Enter "next" and hit enter four times, and gdb will move up to just before executing:
10 vec.push_back("foobar");
Enter "print foo" and gdb will show:
$1 = "bar"
Enter "print vec" and gdb will show:
$2 = std::vector of length 2, capacity 2 = {"foo", "bar"}
--- Remember, line 10 hasn't executed yet to add "foobar" to the vector
Enter "quit" and "y" to quit anyway.
По желанию освободить место на жестком диске. Ваш ~/sourceInstallations
каталог будет занимать около 386 МБ. Вероятно, целесообразно сохранять каталоги, поскольку в будущем могут потребоваться дополнительные параметры конфигурации, и было бы быстрее сделать многое. Кроме того, процесс сборки создает журналы, которые вы можете позже проверить и работать, если что-то пойдет не так. Но после запуска sudo make install
ранее установленная GDB не зависит от чего-либо в этом каталоге, и пространство может быть слишком дорогим, поэтому вы можете сделать этот шаг и вернуть 386 МБ или около того. ВАЖНО: не удаляйте ~/gdb_printers/
каталог! Содержимое этого каталога загружается при каждом запуске GDB. Они НЕ были собраны в самом GDB.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше