[問題] HW4 /ref/memTest.debug的輸出疑問
我把 /tests/run 的內容改了一下,拿去跑reference program
(簡單來說就是把dofile都拿去餵 /ref/memTest.debug)
可是對於某處的MTPrint結果有一點疑問。
我把output檔案放在這裡:
http://tinyurl.com/buw7szf (2.54MB,可以自己跑)
---問題開始---
理論上回收的時候,先回收的size,會先住進linked list吧!
比如:
Recycling 0x64acc80 to _recycleList[418]
...(some other stuff)
Recycling 0x66af4f0 to _recycleList[162]
那又因418 % 256 = 162 % 256 = 162,他們會住進同一個linked list,變成
MemMgr::_recycleList[162]
|
v
MemRecycleList<T> ┌--> MemRecycleList<T>
_arrSize = 418 | _arrSize = 162
_first = 0x64acc80 | _first = 0x66af4f0
_nextList --------------┘ _nextList --------------> NULL
所以使用MTPrint指令印出Recycle list的時候,traverse應該會先跑過418,再跑到162
可是...reference跑出來的結果竟然是162先印,再印418...
(請參考檔案第95282行末及95283行行首)
這個相異處我卡了好久~"~
請問各位板大有任何解釋嗎?Q____Q
謝謝認真看完的人^____^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.245.223
→
11/18 15:59, , 1F
11/18 15:59, 1F
推
11/18 16:00, , 2F
11/18 16:00, 2F
→
11/18 16:00, , 3F
11/18 16:00, 3F
→
11/18 16:01, , 4F
11/18 16:01, 4F
→
11/18 16:01, , 5F
11/18 16:01, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):