memleak2.awk

来自「嵌入式数据库SQLITE,含移植到ARM_LINUX的说明」· AWK 代码 · 共 30 行

AWK
30
字号
# This AWK script reads the output of testfixture when compiled for memory# debugging.  It generates SQL commands that can be fed into an sqlite # instance to determine what memory is never freed.  A typical usage would# be as follows:##     make -f memleak.mk fulltest 2>mem.out#     awk -f ../sqlite/tool/memleak2.awk mem.out | ./sqlite :memory:## The job performed by this script is the same as that done by memleak.awk.# The difference is that this script uses much less memory when the size# of the mem.out file is huge.#BEGIN {  print "CREATE TABLE mem(loc INTEGER PRIMARY KEY, src);"}/[0-9]+ malloc / {  print "INSERT INTO mem VALUES(" strtonum($6) ",'" $0 "');"}/[0-9]+ realloc / {  print "INSERT INTO mem VALUES(" strtonum($10) \           ",(SELECT src FROM mem WHERE loc=" strtonum($8) "));"  print "DELETE FROM mem WHERE loc=" strtonum($8) ";"}/[0-9]+ free / {  print "DELETE FROM mem WHERE loc=" strtonum($6) ";"}END {  print "SELECT src FROM mem;"}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?