vx系統下查詢記憶體被篡改的一種方法

2021-06-28 08:34:37 字數 377 閱讀 9897

之前,在交換機(vxworks系統)測試的時候報了乙個很詭異的問題:執行ospf路由協議的時候造成裝置重啟,而列印的break資訊是在ripng模組宕機。經過了多天的跟蹤測試,終於發現是由於ospf任務中存在大量終端導致棧空間溢位進而修改了ripng模組的全域性變數,後來把棧空間改大點就沒問題了。但是這個問題是怎麼發現的呢?在任務切換(vxworks是基於任務的)時加鉤子函式,判斷那個全域性變數是否已經改變。

鉤子函式如下:

static uint32 _sys_task_switch_recorder(tcb *pold, tcb *pnew)

return 0;

}

這樣的鉤子函式可以提供一種查詢記憶體被篡改的方法。

一種理想狀態下的記憶體管理

看到csdn上有人提問,我就把自己的想法寫下了。對於大專案,尤其是頻繁記憶體操作的高效能專案 系統的記憶體管理功能不那麼好使的。當然,對於一些自帶記憶體管理功能的語言來說,在一定程度上,另當別論。對於你所說的情況,建議在系統啟動時候,分配足夠多的記憶體,然後自己管理。最簡單的情況,當然是假設你的鍊錶...

tmpfs 一種基於記憶體的檔案系統

tmpfs是一種基於記憶體的檔案系統,tmpfs有時候使用rm 物理記憶體 有時候使用swap 磁碟一塊區域 根據實際情況進行分配。rm 物理記憶體。real memery的簡稱?真實記憶體就是電腦主機板上那塊記憶體條,叫做真實記憶體不為過。tmpfs最大可使用的大小為什麼是rm swap。swap...

記憶體池的一種實現

include include include include include const.h include utilityfunc.h include hashtable.h include logmsg.h define system page size 4096 define default...