[問題] 64-bit測試

看板EE_DSnP作者 (j3xu.4)時間14年前 (2011/11/18 23:31), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/3 (看更多)
傳上去compile出現 : >>>Uncompress succeed.<<< Cleaning mem... ../Makefile.in:56: .depend.mak: No such file or directory ../Makefile.in:57: .extheader.mak: No such file or directory Linking external header files... Making dependencies ... Cleaning util... ../Makefile.in:56: .depend.mak: No such file or directory ../Makefile.in:57: .extheader.mak: No such file or directory Linking external header files... Making dependencies ... Cleaning main... ../Makefile.in:56: .depend.mak: No such file or directory ../Makefile.in:57: .extheader.mak: No such file or directory Linking external header files... Making dependencies ... main.cpp:9:18: error: util.h: No such file or directory make[1]: *** [.depend.mak] Error 1 make: *** [clean] Error 2 Checking mem... make[1]: *** No rule to make target `../../include/util.h', needed by `memCmd.o'. Stop. Checking util... > compiling: myGetChar.cpp > compiling: myString.cpp > compiling: util.cpp Building libutil.a... Checking main... > compiling: main.cpp > building memTest... /usr/bin/ld: cannot find -lmem collect2: ld returned 1 exit status make[1]: *** [../../bin/memTest] Error 1 make: *** [main] Error 2 Checking mem... > compiling: memCmd.cpp memMgr.h: In member function 'void MemRecycleList::pushFront(T*) [with T = MemTestObj]': memMgr.h:282: instantiated from 'void MemMgr::free(T*) [with T = MemTestObj]' memTest.h:27: instantiated from here memMgr.h:140: warning: casting 'MemTestObj*' to 'MemTestObj&' does not dereference pointer memMgr.h: In member function 'bool MemBlock::getMem(size_t, T*&) [with T = MemTestObj]': memMgr.h:448: instantiated from 'T* MemMgr::getMem(size_t) [with T = MemTestObj]' memMgr.h:267: instantiated from 'T* MemMgr::alloc(size_t) [with T = MemTestObj]' memTest.h:27: instantiated from here memMgr.h:90: warning: comparison between signed and unsigned integer expressions > compiling: memTest.cpp memMgr.h: In member function 'void MemRecycleList::pushFront(T*) [with T = MemTestObj]': memMgr.h:282: instantiated from 'void MemMgr::free(T*) [with T = MemTestObj]' memTest.h:27: instantiated from here memMgr.h:140: warning: casting 'MemTestObj*' to 'MemTestObj&' does not dereference pointer memMgr.h: In member function 'bool MemBlock::getMem(size_t, T*&) [with T = MemTestObj]': memMgr.h:448: instantiated from 'T* MemMgr::getMem(size_t) [with T = MemTestObj]' memMgr.h:267: instantiated from 'T* MemMgr::alloc(size_t) [with T = MemTestObj]' memTest.h:27: instantiated from here memMgr.h:90: warning: comparison between signed and unsigned integer expressions Building libmem.a... Checking util... Checking main... > building memTest... Checking mem... Checking util... Checking main... >>>Compile succeed.<<< 奇怪的是有error然後還compile成功 ? 然後看下面do的結果 do1~5 除了 do4 都正確... do4結果如下: Dofile: do4 mtest> mtr 0 Illegal block size (0)!! Illegal option!! (0) mtest> mtr 39 mtest> mtr 40 mtest> mtn 1 sh: line 1: 32047 Segmentation fault ./memTest -f tests/do4 2>&1 這到底是怎麼回事 ??? 我在32-bit run結果是正確的... 我檢查很久... 不知道錯在哪= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.24.22

11/18 23:44, , 1F
前面關於 .extheaders 等的 warnings 可以不用理他們,但是
11/18 23:44, 1F

11/18 23:45, , 2F
後面那些 warnings 可能還是處理一下比較好。至於你的error
11/18 23:45, 2F

11/18 23:46, , 3F
請注意現在的 mblock size = 40, which is smaller than
11/18 23:46, 3F

11/18 23:47, , 4F
36 + 8... 改一下數字你的 32-bit platform 應該也會 crash
11/18 23:47, 4F

11/18 23:51, , 5F
但mtn 1時不是只有36嗎?
11/18 23:51, 5F

11/19 00:06, , 6F
原來是44... 謝謝老師!
11/19 00:06, 6F

11/19 00:50, , 7F
我看錯了... mtn 應該只有 36... 但會被 promote 成 40
11/19 00:50, 7F

11/19 00:51, , 8F
因為要是 8 的倍數
11/19 00:51, 8F

11/19 13:50, , 9F
後來發現是下面 mtn 1 -a 1 造成的...
11/19 13:50, 9F
文章代碼(AID): #1EndfeZh (EE_DSnP)
文章代碼(AID): #1EndfeZh (EE_DSnP)