⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtrace.awk

📁 内存分配的各种包装函数
💻 AWK
字号:
##  Awk program to analyze mtrace.c output.#{  if ($1 == "@") {    where = " (" $2 ")"    n = 3  } else {    where = ""    n = 1  }  if ($n == "+") {    if (allocated[$(n+1)] != "")      print "+", $(n+1), "Alloc", NR, "duplicate:", allocated[$(n+1)], wherewas[$(n+1)], where;    else {      wherewas[$(n+1)] = where;      allocated[$(n+1)] = $(n+2);    }  } else if ($n == "-") {    if (allocated[$(n+1)] != "") {      wherewas[$(n+1)] = "";      allocated[$(n+1)] = "";      if (allocated[$(n+1)] != "")	print "DELETE FAILED", $(n+1), allocated[$(n+1)];    } else      print "-", $(n+1), "Free", NR, "was never alloc'd", where;  } else if ($n == "<")	{    if (allocated[$(n+1)] != "") {      wherewas[$(n+1)] = "";      allocated[$(n+1)] = "";    } else      print "-", $(n+1), "Realloc", NR, "was never alloc'd", where;  } else if ($n == ">") {    if (allocated[$(n+1)] != "")      print "+", $(n+1), "Realloc", NR, "duplicate:", allocated[$(n+1)], where;    else {      wherewas[$(n+1)] = $(n+2);      allocated[$(n+1)] = $(n+2);    }  } else if ($n == "=") {    # Ignore "= Start"  } else if ($n == "!") {    # Ignore failed realloc attempts for now  }}END {  for (x in allocated)     if (allocated[x] != "")      print "+", x, allocated[x], wherewas[x];}

⌨️ 快捷键说明

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