檢視Unix Linux程序記憶體分布

2022-06-17 10:54:09 字數 1596 閱讀 9263

摘自:

$ sudo gdb -p 1

......

(gdb)

info

process

1 start addr end addr size offset objfile

0x400000

0x401000

0x1000

0x0 /usr/bin/runit

0x401000

0x480000

0x7f000

0x1000 /usr/bin/runit

0x480000

0x4aa000

0x2a000

0x80000 /usr/bin/runit

0x4ab000

0x4ae000

0x3000

0xaa000 /usr/bin/runit

0x4ae000

0x4b0000

0x2000

0x00x62d000

0x650000

0x23000

0x0[heap]

0x7ffe5e3f3000

0x7ffe5e414000

0x21000

0x0[stack]

0x7ffe5e4a4000

0x7ffe5e4a7000

0x3000

0x0[vvar]

0x7ffe5e4a7000

0x7ffe5e4a8000

0x1000

0x0 [vdso]

另外在linux系統上,也可以使用pmap命令:

$ sudo pmap -x 1

1: runit

000000000040000044

0 r----runit

0000000000401000

508440

0 r-x--runit

0000000000480000

168124

0 r----runit

00000000004ab000

1212

12 rw---runit

00000000004ae000 88

8 rw---[ anon ]

000000000062d000

1408

8 rw---[ anon ]

00007ffe5e3f3000

13212

12 rw---[ stack ]

00007ffe5e4a4000 120

0 r----[ anon ]

00007ffe5e4a7000 44

0 r-x--[ anon ]

---------------- ------- ------- -------total kb

988612

40

通過檢視程序的記憶體分布,可以了解哪些位址是有效的,可寫的;這對於除錯有一定幫助。

Unix Linux程序在記憶體中的布局

對於linux作業系統之上的程式而言,其執行的程序所使用的記憶體位址都是虛擬位址,是mmu經過對映後的位址,我們這裡所談及的記憶體也是虛擬記憶體,而不是物理記憶體。我們將編寫好的程式經過gcc編譯得到乙個可執行的檔案,然後將其執行起來,通過檢視程序的命令得到程序id ps aux 在得到程序id之後...

在UNIX Linux下檢視某個程序的詳細引數

如果要在unix linux下檢視某個程序的詳細引數,可以用命令 ps axuww grep 但需要注意的是,在solaris下,存在兩個版本的ps 一是 usr bin ps 一是 usr bin ps。只有 usr bin ps可以用於上述命令。usr ucb ps 是從bsd unix中繼承而...

Unix Linux程序管理

複習一下,免得忘記。顯示程序屬性 ps 命令 該命令是最基本同時也是非常強大的程序檢視命令,用於報告程序標識 使用者 cpu 時間消耗以及其他屬性。利用它可以確定有哪些程序正在執行及執行的狀態 程序是否結束 程序有沒有僵死 哪些程序占用了過多的資源等。ps 命令可以監控後台程序的工作情況,因為後台程...