分类: C/C++
2011-04-12 13:02:25
下边是一个调试动态库的例子:开发环境是ARM平台上,使用NFS文件系统调试
一。在Makefile里加入MEMWATCH选项:
cat Makefile:
36 CFLAGS += -DMEMWATCH -DMEMWATCH_STDIO
37
56 SRC += dummyplayer.c swmedia.c swmediaref.c swmediamonitor.c memwatch.c
二。由于每个 .c中都要加入memwatch.h 这样做工作量太大。在通用的.h中包含进去。我使用的是 stdafx.h 如下所示:
# svn st
? memwatch.h
? tags
? swmedia/tags
M stdafx.h
# svn diff stdafx.h
Index: stdafx.h
===================================================================
--- stdafx.h (版本 1386)
+++ stdafx.h (工作副本)
@@ -6,6 +6,7 @@
#include
#include
#include
+#include
#include
#include
#include
需要注意的是:memwatch.h 要在string.h 后边,这样避免编译错误。详情看MEMWATCH 调试动态库1.
三。
make;然后make copy
... done
cp /root/Taishan/swapi/libs/hi3560e/libswmedia.so /nfs/hi3560eb/rootfs/usr/local/lib -f
四.
在串口跑APP,APP正常推出 会在当前目录下产生memwatch.log.内容如下:
# cat memwatch.log -n
1
2 ============= MEMWATCH 2.71 Copyright (C) 1992-1999 Johan Lindh =============
3
4 Started at Thu Jan 1 00:09:51 1970
5
6 Modes: __STDC__ 32-bit mwDWORD==(unsigned long)
7 mwROUNDALLOC==4 sizeof(mwData)==32 mwDataSize==32
8
9
10 Stopped at Thu Jan 1 00:23:32 1970
11
12
13 Memory usage statistics (global):
14 N)umber of allocations made: 4
15 L)argest memory usage : 156
16 T)otal of all alloc() calls: 156
17 U)nfreed bytes totals : 0
没有内存错误。