Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007158 [Squeak] Tools minor always 08-20-08 08:05 02-06-11 23:47
Reporter matthewf View Status public  
Assigned To matthewf
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0007158: Pointer tracing tools do not consistently find pointers
Description There are two tools in Squeak to figure out why an object that has been deleted is not being garbage collected: the PointerExplorer and the PointerFinder. Both of them don't find certain classes of pointers

The PointerExplorer doesn't know that instances "point" to their class, as far as the garbage collector is concerned

The PointerFinder doesn't know that CompiledMethods contain pointers
Additional Information
Attached Files  TracingFixes-M7158.mtf.cs [^] (22,816 bytes) 08-20-08 08:16

- Relationships
has duplicate 0002715closed KenCausey PointerFinder does not look into CompiledMethods 

- Notes
(0012505 - 881 - 1013 - 1013 - 1112 - 1112 - 1112)
matthewf
08-20-08 08:24
edited on: 08-20-08 08:25

I uploaded a change that fixes both problems in a bit cleaner way than did the previous fix in 0002715. I created a category in Object/ProtoObject named tracing which contains the best implementation of 4 simple methods:
outboundPointers
outboundPointersDo:
inboundPointers
inboundPointersExcluding:
pointsTo:

These superceed
Utilities pointersTo:excluding:
PointerFinder pointersTo:excluding:
PointerFinder >> followObject:

I then re-implemented the tools to use these methods, simplifying them in the process. There was an existing method named pointsTo:; I renamed it to instVarsInclude: and modified senders who did not expect it to visit classes. The only sender who used it in this way was MethodDictionary>>includes:

Finally, I made two convenience methods:
Object >> explorePointers opens a pointer explorer
Object >> chasePointers opens a pointer finder

 
(0012506 - 84 - 116 - 116 - 116 - 116 - 116)
matthewf
08-20-08 08:27

"fix begin"
Installer mantis bug: 7158 fix: 'TracingFixes-M7158.mtf.cs'.
"fix end"
 
(0013773 - 224 - 254 - 254 - 254 - 254 - 254)
matthewf
05-15-10 19:27

This is in the trunk inbox. There is a possible load order issue with the Kernel package, so I split it into two parts. Load the following 4 packages in order:

Kernel-mtf.421
Kernel-mtf.422
System-mtf.293
Tools-mtf.208
 
(0013799 - 222 - 222 - 222 - 222 - 222 - 222)
matthewf
06-03-10 13:13

I merged Kernel-mtf.421 into trunk (Kernel-mtf.454); it is just a single method addition, and will prevent loading the rest of this package from encountering an emergency evaluator if someone tries to load it in the future
 
(0013984 - 20 - 20 - 20 - 20 - 20 - 20)
matthewf
12-14-10 03:19

This is now in trunk
 

- Issue History
Date Modified Username Field Change
08-20-08 08:05 matthewf New Issue
08-20-08 08:06 matthewf Relationship added duplicate of 0002715
08-20-08 08:16 matthewf File Added: TracingFixes-M7158.mtf.cs
08-20-08 08:24 matthewf Note Added: 0012505
08-20-08 08:25 matthewf Relationship replaced has duplicate 0002715
08-20-08 08:25 matthewf Note Edited: 0012505
08-20-08 08:27 matthewf Note Added: 0012506
01-10-09 02:13 Keith_Hodges Status new => pending
04-09-09 18:13 KenCausey Category Debugger => Tools
08-19-09 20:15 sheriw Issue Monitored: sheriw
05-15-10 19:27 matthewf Note Added: 0013773
06-03-10 12:42 matthewf Status pending => assigned
06-03-10 12:42 matthewf Assigned To  => matthewf
06-03-10 12:43 matthewf Relationship added has duplicate 0007126
06-03-10 12:44 matthewf Relationship deleted has duplicate 0007126
06-03-10 13:13 matthewf Note Added: 0013799
12-14-10 03:19 matthewf Status assigned => resolved
12-14-10 03:19 matthewf Fixed in Version  => trunk
12-14-10 03:19 matthewf Resolution open => fixed
12-14-10 03:19 matthewf Note Added: 0013984
02-06-11 23:47 leves Status resolved => closed


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
77 total queries executed.
45 unique queries executed.
Powered by Mantis Bugtracker