作者kome5566 (j3xu.4)
看板EE_DSnP
標題[問題] 64-bit測試
時間Fri Nov 18 23:31:50 2011
傳上去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
1F:推 ric2k1:前面關於 .extheaders 等的 warnings 可以不用理他們,但是 11/18 23:44
2F:→ ric2k1:後面那些 warnings 可能還是處理一下比較好。至於你的error 11/18 23:45
3F:→ ric2k1:請注意現在的 mblock size = 40, which is smaller than 11/18 23:46
4F:→ ric2k1:36 + 8... 改一下數字你的 32-bit platform 應該也會 crash 11/18 23:47
5F:→ kome5566:但mtn 1時不是只有36嗎? 11/18 23:51
6F:→ kome5566:原來是44... 謝謝老師! 11/19 00:06
7F:推 ric2k1:我看錯了... mtn 應該只有 36... 但會被 promote 成 40 11/19 00:50
8F:→ ric2k1:因為要是 8 的倍數 11/19 00:51
9F:推 inferior9527:後來發現是下面 mtn 1 -a 1 造成的... 11/19 13:50