O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
GDB este un depanator pentru C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada și Modula-2.
CentOS se bazează pe RHEL (Red Hat Enterprise Linux). Unul dintre obiectivele principale ale RHEL este să fie un sistem de operare stabil pentru server, ceea ce înseamnă că versiunile mai noi de pachete software nu sunt întotdeauna disponibile.
În momentul scrierii, CentOS 6 oferă GDB v7.2. Echipa GDB, cu toate acestea, a lansat recent codul pentru v7.91.
Se recomandă oficial să rulați o distro Linux diferită pentru a utiliza o versiune mai nouă de GDB. Acest lucru nu este întotdeauna ideal. Din fericire, este posibil să instalați versiunile mai noi de GDB pe CentOS 6. Deoarece GDB este mai degrabă un debugger decât o componentă principală a sistemului, sunteți destul de sigur să utilizați o versiune mai nouă.
Acest articol explică modul de instalare a versiunilor GDB acceptate și neacceptate pe CentOS 6.
Vă voi explica, de asemenea, cum să configurați GDB pentru a vă oferi informații de depanare mai ușor de citit atunci când utilizați Biblioteca Standard C ++ (ca șirul) și Biblioteca cu șabloane standard (precum vectorul). Această caracteristică se numește destul de tipărire.
Conectați-vă la VPS. Acest lucru se poate face făcând clic pe „View Console” în panoul de control Vultr sau cu un client SSH.
(a) Conectați-vă ca root.
(b) Creează-ți propriul cont de utilizator. Setați parola.
adduser <username>
passwd <username>
(c) Acordarea accesului sudo utilizatorului.
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) Deconectați-vă ca root, apoi conectați-vă cu contul de utilizator. Este mult mai sigur să nu te autentifici niciodată ca root. Utilizarea sudo este o practică mai bună.
Instalați GDB.
sudo yum install gdb
Verificați versiunea instalată și vedeți locația acesteia.
gdb --version
May say: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
which gdb
/usr/bin/gdb
Instalați un compilator C, cum ar fi GCC. Un compilator C ++ nu este necesar pentru a construi GDB din sursă, ci este necesar pentru a demonstra caracteristica de imprimare destul de bună a GDB. Puteți construi o versiune mai recentă a GCC de la sursă, executând pașii din articolul Cum se instalează GCC pe CentOS 6 . Sau puteți instala CentOS 6 versiunea GCC acceptată oficial rulând:
sudo yum install gcc gcc-c++
Instalați pachetele necesare în plus.
sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
Decideți ce versiune a GDB pe care doriți să o construiți din sursă. Accesați site-ul FTP GDB pentru a vedea versiunile disponibile pentru descărcare.
Obțineți sursa versiunii GDB pe care o doriți. Restul acestui articol este scris pentru v7.9.1 și va descărca sursele în ~/sourceInstallations/gdb-7.9.1/
- va trebui să înlocuiți numărul de versiune corespunzător cu versiuni mai noi.
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
Construiți GDB. Dacă acest lucru se completează corect, ultima linie pe care o veți vedea va spune „succes”. Este normal să vezi unele mesaje cu aspect de eroare defilând rapid. Acestea sunt sigure de ignorat.
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
Instalați imprimare destul de 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.
Verificați versiunea instalată și locația acesteia.
gdb --version
May say: GNU gdb (GDB) 7.9.1
which gdb
/usr/local/bin/gdb
Opțional rulați GDB și vedeți tipărirea destul de bună.
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.
Opțional, revendicați spațiul pe hard disk. ~/sourceInstallations
Directorul dvs. va prelua aproximativ 386 MB. Este probabil înțelept să păstrați directoarele, deoarece există opțiuni de configurare opționale pe care poate fi necesar să le utilizați la un moment dat în viitor, și ar fi mai rapid să aveți multe deja făcute. De asemenea, procesul de construire face jurnalele pe care le puteți verifica și lucra mai târziu dacă ceva nu merge bine. Dar, după ce a rulat sudo make install
mai devreme, GDB-ul dvs. instalat nu depinde de nimic din acest director, iar spațiul poate fi la un nivel premium, astfel încât să puteți face acest pas și să revendicați 386MB sau cam așa ceva. IMPORTANT: nu ștergeți ~/gdb_printers/
directorul! Conținutul acestui director este încărcat de fiecare dată când executați GDB. NU au fost compilate în GDB în sine.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe