![Page 1: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/1.jpg)
Practical Memory Leak Detector Based onParameterized Procedural Summaries
Yungbum Jung, Kwangkeun Yi{dreameye, kwang}@ropas.snu.ac.kr
Programming Research Lab.Seoul National University
Korea
June 8, 2008International Symposium on Memory Management
![Page 2: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/2.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Leaks DetectedLeaks on Exception
p1 = malloc();if(p1 == NULL) return 0;p2 = malloc();if(p2 == NULL) return 0;
Omission in Freeing Procedure
s = allocS();...freeS(s);return;
ret
VB
PB
texture Proxy1D
Proxy2DProxy3D
shared
DisplayList
TextObjects
TextObjectList
Default2D
Default1D
Default3D
next
Programming Research Lab. Seoul National University, Korea 2
![Page 3: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/3.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Analysis Overview
Static analysis for detecting memory leaks
• Procedural Summaries1. Summarizing callee procedures in reverse topological order of
static call graph• How to analyze a procedure without knowing the input
memory?
• What can be memory leak related behaviours?
2. Instantiation at the call sites: context-sensitivity
• Unsound Decisions for cost-accuracy balance• Reducing costs• Improving accuracy
Programming Research Lab. Seoul National University, Korea 3
![Page 4: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/4.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Analysis Overview
Static analysis for detecting memory leaks
• Procedural Summaries1. Summarizing callee procedures in reverse topological order of
static call graph• How to analyze a procedure without knowing the input
memory?Access Path
• What can be memory leak related behaviours?8 Summary Categories
2. Instantiation at the call sites: context-sensitivity
• Unsound Decisions for cost-accuracy balance• Reducing costs• Improving accuracy
Programming Research Lab. Seoul National University, Korea 4
![Page 5: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/5.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Memory Leaks
A procedure leaks a heap memory whenever
• the memory is allocated while the procedure active
• the memory is neither recycled nor visible after return
Detecting memory leaks needs three information
• allocated addresses int *p = malloc();
• aliases between addresses int *x = p;
• freed addresses free(x);
Programming Research Lab. Seoul National University, Korea 5
![Page 6: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/6.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Exploring Unknown Input Memory
We collect three information without knowing the input memory
1. Only locations accessed by the procedure are important
2. C procedures access the input memory through eitherarguments or global variables
3. We can determine the “access path” with which thoselocations are accessed
(argi | ret | global)(* | .f)∗
Programming Research Lab. Seoul National University, Korea 6
![Page 7: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/7.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Example of Explorations
Exploring Unknown Memory
List * next(List *head) {List * cur = head->next;free(head);return cur;
}
Programming Research Lab. Seoul National University, Korea 7
![Page 8: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/8.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Example of Explorations
Exploring Unknown Memory
List * next(List *head) {List * cur = head->next;free(head);return cur;
}
head 7→ αα.next 7→ β
cur 7→ β
Symbolic addresses α and β represent some addresses that alreadyexisted before the procedure is called
α = arg *β = arg *.next
Programming Research Lab. Seoul National University, Korea 8
![Page 9: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/9.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Example of Explorations
Exploring Unknown Memory
List * next(List *head) {List * cur = head->next;free(head);return cur;
}
head 7→ αα.next 7→ β
cur 7→ β
The symbolic address α is freed〈 Alloc, Free 〉 = 〈∅, {α}〉
Programming Research Lab. Seoul National University, Korea 9
![Page 10: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/10.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Example of Explorations
Exploring Unknown Memory
List * next(List *head) {List * cur = head->next;free(head);return cur;
}
head 7→ αα.next 7→ β
cur 7→ βret 7→ β
Return address ret contains return value
Programming Research Lab. Seoul National University, Korea 10
![Page 11: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/11.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Example of Explorations
Exploring Unknown Memory
List * next(List *head) {List * cur = head->next;free(head);return cur;
}
head 7→ αα.next 7→ β
cur 7→ βret 7→ β
This procedure
• frees α accessed from the argument with arg*
• returns β accessed from the argument with arg*.next
Programming Research Lab. Seoul National University, Korea 11
![Page 12: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/12.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Memory Leak Related Behaviours
How can procedures affect leak detections?
No Effects
void local() {int *p = malloc();free(p);
}
Effects
int *foo(int *p) {free(p);return malloc();
}
The foo procedure frees an address pointed to by the argumentand returns an allocated address
Programming Research Lab. Seoul National University, Korea 12
![Page 13: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/13.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Memory Leak Related Behaviours?
Procedure fcall calls the function pointer
High-order Effects of Procedure
void fcall(int *a, void (*fp)(int *)) {fp(a);
}p = malloc();fcall(p, free); no leak!
We can not summarize all memory leak related behaviours
Programming Research Lab. Seoul National University, Korea 13
![Page 14: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/14.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
8 Summary Categories
• To detect more leaks
• To avoid false positives
• To capture interprocedural aliasing
free global argument return
allocation - - Alloc2Arg Alloc2Ret
global - - Glob2Arg Glob2Ret
argument Arg2Free Arg2Glob Arg2Arg Arg2Ret
Programming Research Lab. Seoul National University, Korea 14
![Page 15: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/15.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Examples of Summary Categories(1/2)
Allocation- Alloc2Arg, Alloc2Ret
List *f(int **p){List *cur = malloc();cur->next = malloc();*p = malloc();return cur;
}
arg
ret
* *
*next
done by the procedure
existed before the procedure is called
Programming Research Lab. Seoul National University, Korea 15
![Page 16: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/16.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Examples of Summary Categories(2/2)
Free & Globalization- Arg2Free, Glob2Ret
Node gNode;Node *g(int *p){
free(p);return &gNode;
}
arg
ret
*
* global
Programming Research Lab. Seoul National University, Korea 16
![Page 17: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/17.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Examples of Summary Categories(2/2)Free & Globalization- Arg2Free, Glob2Ret
Node gNode;Node *g(int *p){
free(p);return &gNode;
}
arg
ret
*
* global
No Leaks
void f(){Node *node;int *p = malloc();node = g(p);node->next = malloc();
}
Programming Research Lab. Seoul National University, Korea 17
![Page 18: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/18.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Summarization from Memory
From
List *next(List *head) {List *cur = head->next;free(head);return cur;
}
head 7→ αα.next 7→ β
cur 7→ βret 7→ β
To
Arg2Free
Arg2Ret
arg *
ret
next
*
α = arg *β = arg *.nextβ = ret *
Programming Research Lab. Seoul National University, Korea 18
![Page 19: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/19.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Summary Instantiation
foo(Node *x, Node *y){free(y->next);free(x);
}
arg1*
arg2* next
Node *a = malloc();Node *b = a;a->next = malloc();foo(a,b);
a 7→ `1
b 7→ `1
`1.next 7→ `2
Programming Research Lab. Seoul National University, Korea 19
![Page 20: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/20.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Summary Instantiation
foo(Node *x, Node *y){free(y->next);free(x);
}
arg1*
arg2* next
Node *a = malloc();Node *b = a;a->next = malloc();foo(a,b);
a 7→ `1
b 7→ `1
`1.next 7→ `2
Parameterized addresses are instantiated
a*
b* next
Introduction Experiment Results Intraprocedural Analysis Procedural Summaries Unsound Decisions Conclusion
Summary Instantiation
f(Node *x, Node *y){free(y->next);free(x);
}
arg1
*
arg2
* *
Node *a = malloc();Node *b = a;a->next = malloc();f(a,b);
a !" !1
b !" !1
!1.next !" !2
arg1
*
arg2
* *
Programming Research Lab. Seoul National University 17
Introduction Experiment Results Intraprocedural Analysis Procedural Summaries Unsound Decisions Conclusion
Summary Instantiation
f(Node *x, Node *y){free(y->next);free(x);
}
arg1
*
arg2
* *
Node *a = malloc();Node *b = a;a->next = malloc();f(a,b);
a !" !1
b !" !1
!1.next !" !2
arg1
*
arg2
* *
Programming Research Lab. Seoul National University 17
Introduction Experiment Results Intraprocedural Analysis Procedural Summaries Unsound Decisions Conclusion
Summary Instantiation
f(Node *x, Node *y){free(y->next);free(x);
}
arg1
*
arg2
* *
Node *a = malloc();Node *b = a;a->next = malloc();f(a,b);
a !" !1
b !" !1
!1.next !" !2
arg1
*
arg2
* *
Programming Research Lab. Seoul National University 17
Programming Research Lab. Seoul National University, Korea 20
![Page 21: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/21.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Performance Numbers
, our analyzer www.spa-arrow.com
Programs Size Time Bug FalseKLOC (sec) Count Positives
art 1.2 0.68 1 0equake 1.5 1.03 0 0mcf 1.9 2.77 0 0bzip2 4.6 1.52 1 0gzip 7.7 1.56 1 4parser 10.9 15.93 0 0ammp 13.2 9.68 20 0vpr 16.9 7.85 0 9crafty 19.4 84.32 0 0twolf 19.7 68.80 5 0mesa 50.2 43.15 9 0vortex 52.6 34.79 0 1gap 59.4 31.03 0 0gcc 205.8 1330.33 44 1
binutils-2.13.1 909.4 712.09 228 25openssh-3.5p1 36.7 10.75 18 4httpd-2.2.2 316.4 74.87 0 0tar-1.13 49.5 11.73 5 3
SPEC2000 benchmarks
Open source programs
Programming Research Lab. Seoul National University, Korea 21
![Page 22: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/22.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Comparison with Others(1/2)Sparrow finds consistently more bugs than others on the sameprograms
C program Tool Bug FalseCount Positives
SPEC2000 Sparrow 81 15benchmark FastCheck ’07 (Cornell) 59 8
binutils-2.13.1 Sparrow 246 29& Saturn ’05 (Stanford) 165 5
openssh-3.5.p1 Clouseau ’03 (Stanford) 84 269
Table: On the same test programs
Programming Research Lab. Seoul National University, Korea 22
![Page 23: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/23.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Comparison with Others(2/2)
Tool C size Speed Bug False Positive EfficacyKLOC LOC/s Count Ratio(%)
Saturn ’05 (Stanford) 6,822 50 455 10% 1/150Clouseau ’03 (Stanford) 1,086 500 409 64% 1/170FastCheck ’07 (Cornell) 671 37,900 63 14% 1/149Contradiction ’06 (Cornell) 321 300 26 56% 1/691
Sparrow 1,777 785 332 12% 1/66
Table: Overall Performance
In comparison with other published memory leak detectors
• Analysis speed: 785LOC/sec, next to the fastest FastCheck• False-positive ratio: 12.4% next to the smallest Saturn• Efficacy: Sparrow the biggest
BugCount/KLOC
FalsePositiveRatio
Programming Research Lab. Seoul National University, Korea 23
![Page 24: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/24.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Prcatical Performance
For 1Million lines of code Sparrow
• takes 23 minutes
• detects 186 leaks
• with only 23 false positives
Programming Research Lab. Seoul National University, Korea 24
![Page 25: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/25.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Unsound Escaping Effects from Path-insensitivityPath-insensitive Analysis
f(int *x, int *y){int *p;if(· · · ) p = x;else p = y;free(p);
}
x 7→ αy 7→ βp 7→ {α, β}
Unsound escaping effects on arguments
arg2*
arg1*
Programming Research Lab. Seoul National University, Korea 25
![Page 26: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/26.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Global Variables Abstraction
The global node represents all the global variables
int *gp;void f(int *p){ gp = p; } arg
*global
*
Interprocedural Overwritten on Global Variable
int n;f(malloc());f(&n); overwritten leak!
Programming Research Lab. Seoul National University, Korea 26
![Page 27: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/27.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Global Variables Abstraction
More categories are required to detect such leaks
free global argument return
allocation - Alloc2Glob Alloc2Arg Alloc2Ret
global Glob2Free Glob2Glob Glob2Arg Glob2Ret
argument Arg2Free Arg2Glob Arg2Arg Arg2Ret
Programming Research Lab. Seoul National University, Korea 27
![Page 28: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/28.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Being Sensitive to Memory-Allocating Paths
Return Integer Values
int *foo(int **a){if(n == 0) return 0;*a = malloc(n);return 1;
}arg
* *
return integer values = { 0, 1 }void bar(){
if(foo(&p) == 0)return; false positive!
...}
Programming Research Lab. Seoul National University, Korea 28
![Page 29: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/29.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Being Sensitive to Memory-Allocating Paths
Return Integer Values
int *foo(int **a){if(n == 0) return 0;*a = malloc(n);return 1;
}arg
* *
return integer values = { 1 }void bar(){
if(foo(&p) == 0)return; unreachable!
...}
Programming Research Lab. Seoul National University, Korea 29
![Page 30: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/30.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
k-bound ExplorationsThe number of explorations is limited up to k
freeList(List *cur){List *prev = cur;while(cur != NULL){
cur = cur->next;free(prev);prev = cur;
}}
cur 7→ αα.next 7→ ββ.next 7→ γγ.next 7→ δ
...
arg *next next
k
Programming Research Lab. Seoul National University, Korea 30
![Page 31: Practical Memory Leak Detector Based on Parameterized ... · June 8, 2008 International Symposium on Memory Management. IntroductionEstimating Memory-E ectsProcedural SummaryExperiment](https://reader033.vdocument.in/reader033/viewer/2022042709/5f465167cd97c40219463247/html5/thumbnails/31.jpg)
Introduction Estimating Memory-Effects Procedural Summary Experiment Results Unsound Decisions Conclusion
Conclusion
• Practical Memory Leak Detector
pure soup Abstract Interpretation+
unsound seasoningProcedural SummaryUnsound Decisions
• Procedural Summary
• access path representation for exploring unknown memory• categorizing memory leak related behaviours
Programming Research Lab. Seoul National University, Korea 31