The Rise of Machines: Real World Applications of AI
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
GDB är en debugger för C, C++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada och Modula-2.
CentOS är baserat på RHEL (Red Hat Enterprise Linux). Ett av huvudmålen med RHEL är att vara ett stabilt serveroperativsystem, vilket innebär att nyare versioner av mjukvarupaket inte alltid är tillgängliga.
I skrivande stund erbjuder CentOS 6 GDB v7.2. GDB-teamet släppte dock nyligen kod för v7.91.
Det föreslås officiellt att köra en annan Linux-distro för att kunna använda en nyare version av GDB. Det här är inte alltid idealiskt. Lyckligtvis är det möjligt att installera de nyare versionerna av GDB på CentOS 6. Eftersom GDB är en debugger snarare än en systemkärnkomponent, är du ganska säker att använda en nyare version.
Den här artikeln förklarar hur du installerar versioner av GDB som stöds och som inte stöds på CentOS 6.
Jag kommer också att förklara hur du ställer in GDB för att ge dig lättare att läsa felsökningsinformation när du använder C++ Standard Library (som sträng) och Standard Template Library (som vektor). Denna funktion kallas pretty printing.
Logga in på din VPS. Detta kan göras genom att klicka på "View Console" i Vultr kontrollpanelen, eller med en SSH-klient.
(a) Logga in som root.
(b) Skapa ditt eget användarkonto. Ställ in lösenordet.
adduser <username>
passwd <username>
(c) Ge användaren sudo-åtkomst.
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) Logga ut som root och logga sedan in igen med ditt användarkonto. Det är mycket säkrare att aldrig logga in som root. Att använda sudo är en bättre praxis.
Installera GDB.
sudo yum install gdb
Kontrollera den installerade versionen och se dess plats.
gdb --version
May say: GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6)
which gdb
/usr/bin/gdb
Installera en C-kompilator, till exempel GCC. En C++-kompilator behövs inte för att bygga GDB från källkod, men behövs för att demonstrera GDB:s snygga utskriftsfunktion. Du kan bygga en nyare version av GCC från källan genom att utföra stegen i artikeln Hur man installerar GCC på CentOS 6 . Eller så kan du installera CentOS 6-versionen av GCC som officiellt stöds genom att köra:
sudo yum install gcc gcc-c++
Installera ytterligare nödvändiga paket.
sudo yum install wget tar gzip ncurses-devel texinfo svn python-devel
Bestäm vilken version av GDB du vill bygga från källan. Besök GDB FTP-webbplatsen för att se de versioner som är tillgängliga för nedladdning.
Hämta källan till den version av GDB du vill ha. Resten av den här artikeln är skriven för v7.9.1 och kommer att ladda ner källorna till ~/sourceInstallations/gdb-7.9.1/- du måste ersätta nyare versioner med rätt versionsnummer.
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
Bygg GDB. Om detta slutförs korrekt kommer den sista raden du ser att säga "framgång". Det är normalt att se några felmeddelanden som snabbt rullar förbi. Dessa är säkra att ignorera.
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
Installera C++ pretty printing.
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.
Kontrollera den installerade versionen och dess plats.
gdb --version
May say: GNU gdb (GDB) 7.9.1
which gdb
/usr/local/bin/gdb
Kör eventuellt GDB och se snygga utskrifter.
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.
Eventuellt återta hårddiskutrymme. Din ~/sourceInstallationskatalog kommer att ta upp cirka 386 MB. Det är förmodligen klokt att behålla katalogerna, eftersom det finns valfria konfigurationsalternativ som du kan behöva använda någon gång i framtiden, och det skulle vara snabbare att ha mycket redan gjort. Byggprocessen skapar också loggar som du senare kan kontrollera och arbeta utifrån om något går fel. Men efter att ha körts sudo make installtidigare är din installerade GDB inte beroende av någonting i den här katalogen, och utrymmet kan vara mycket dyrt, så du kan göra det här steget och återta 386 MB eller så. VIKTIGT: ta inte bort ~/gdb_printers/katalogen! Innehållet i den här katalogen laddas varje gång du kör GDB. De kompilerades INTE i själva GDB.
cd ~/
rm -rf sourceInstallations
--- Again, if you can spare the space, you may someday be happy to have left it there.
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer