2020春節,不平靜的乙個春節,宅家中,心血來潮,重新拾起彙編。
選擇了jeff duntemann著的assembly language setp-by-step;
該書的彙編基於linux下的nasm;所以linux下的彙編環境的搭建就十分必要。
系列檔案講述了在centos7下,書中彙編環境的搭建及c/c++開發環境的搭建。
包含如下部份:
1、gdb公升級到gdb-8.3.1;
2、gcc公升級到gcc-9.2.0;
3、glibc公升級到glibc-2.30;
4、c/c++開發環境codeblock安裝;
5、gnu基於gui的偵錯程式安裝:insight-6.8-1a.tar.bz2安裝
6、kate安裝
7、nasm安裝
8、bless安裝
解決上述問題花了近一周多的時間,很多網路上的資料不全或有誤,走了一些轉路。
希望這部份的記錄能夠幫到後來的小夥伴。也希望大家能夠給個贊!
第五部份:安裝inisght
tar -xjvf insight-6.8-1a.tar.bz2
cd insight-6.8-1
autoconf
//採用已安裝的gcc進行編繹,/usr/local/gcc/bin/gcc可以替換成其它的gcc。
cc=/usr/local/gcc/bin/gcc ./configure --disable-werror
make
編繹過程會有以下幾種錯誤,修改方法如下:
錯誤1:
bfd.texinfo:326: unknown command `colophon'
bfd.texinfo:337: unknown command `cygnus'
在當前目錄下,執行以下命令:
錯誤2:
./elf.texi:11: raising the section level of @subsubsection which is too low
在當前目錄下,執行以下命令:
sed -i 's/subsubsection/subsection/' ./bfd/doc/elf.texi
錯誤3:
linux-nat.h:63:18: error: field 『siginfo』 has incomplete type struct siginfo siginfo;
in file included from linux-nat.c:32:0:
linux-nat.h:63:18: error: field 『siginfo』 has incomplete type
struct siginfo siginfo;
解決方法: 把所有的struct siginfo替換為struct siginfo_t,指令碼如下:
#!/bin/sh
for c_file in `find . -name '*.c' -o -name '*.h'`
dosed -i 's/struct siginfo/siginfo_t/' $c_file
done
/* version number of gdb, as a string. */
extern const char version;
/* canonical host name as a string. */
extern const char host_name;
/* canonical target name as a string. */
extern const char target_name;
#endif /* #ifndef version_h */
如此,可以順利通過編繹;
make install
最後啟動insight,在命令列直接輸入:insight即可。
第五部分 保護與安全
為實施資源使用的控制策略提供一種機制。保護原則 最小特權原則 principle of least privilege 它規定程式 使用者,甚至包括作業系統僅擁有他們能夠完成其任務的特權。乙個計算機系統是程序和物件的集合。物件分為硬體物件和軟體物件。域結構 每個程序只在乙個保護域內操作,該保護域指定...
譯 Reduce(軟體編寫)(第五部分)
本文講的是 譯 reduce 軟體編寫 第五部分 array.reduce reducer accumulator any,current any any,initialvalue any accumulator any 2,4,6 reduce acc,n acc n,0 12const summ...
Python學習手冊(第五部分 模組)
注意 匯入只發生一次!如果需要乙個模組的 通過某種匯入後再一次執行,需要使用內建函式reload來實現。最好使用import直接匯入模組,使用from import 語句匯入的變數名可能會有問題。import匯入模組包的語句中的目錄路徑只能是以點號間隔的變數。相對匯入與絕對匯入 絕對匯入的格式為 i...