第五部份 安裝inisght

2021-10-02 18:22:37 字數 2008 閱讀 3015

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...