Processing

Please wait...

Settings

Settings

Goto Application

1. WO2000016196 - METHOD AND APPARATUS FOR FINDING BUGS RELATED TO GARBAGE COLLECTION IN A VIRTUAL MACHINE

Publication Number WO/2000/016196
Publication Date 23.03.2000
International Application No. PCT/US1999/018685
International Filing Date 16.08.1999
IPC
G06F 11/07 2006.01
GPHYSICS
06COMPUTING; CALCULATING OR COUNTING
FELECTRIC DIGITAL DATA PROCESSING
11Error detection; Error correction; Monitoring
07Responding to the occurrence of a fault, e.g. fault tolerance
CPC
G06F 11/0718
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
11Error detection; Error correction; Monitoring
07Responding to the occurrence of a fault, e.g. fault tolerance
0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
0706the processing taking place on a specific hardware platform or in a specific software environment
0718in an object-oriented system
G06F 11/0751
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
11Error detection; Error correction; Monitoring
07Responding to the occurrence of a fault, e.g. fault tolerance
0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
0751Error or fault detection not based on redundancy
G06F 11/0766
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
11Error detection; Error correction; Monitoring
07Responding to the occurrence of a fault, e.g. fault tolerance
0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
0766Error or fault reporting or storing
Y10S 707/99942
YSECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
10TECHNICAL SUBJECTS COVERED BY FORMER USPC
STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
707Data processing: database and file management or data structures
99941Database schema or data structure
99942Manipulating data structure, e.g. compression, compaction, compilation
Y10S 707/99953
YSECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
10TECHNICAL SUBJECTS COVERED BY FORMER USPC
STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
707Data processing: database and file management or data structures
99951File or database maintenance
99952Coherency, e.g. same view to multiple users
99953Recoverability
Applicants
  • SUN MICROSYSTEMS, INC. [US]/[US]
Inventors
  • UNGAR, David
Agents
  • HECKER, Gary, A.
Priority Data
09/153,38215.09.1998US
Publication Language English (EN)
Filing Language English (EN)
Designated States
Title
(EN) METHOD AND APPARATUS FOR FINDING BUGS RELATED TO GARBAGE COLLECTION IN A VIRTUAL MACHINE
(FR) PROCEDE ET APPAREIL POUR TROUVER LES BOGUES LIES A LA RECUPERATION D'ESPACE MEMOIRE DANS UNE MACHINE VIRTUELLE
Abstract
(EN)
A method and apparatus for finding bugs related to garbage collection in a virtual machine. For each possible garbage collection point in a stream of execution, a compiler in the virtual machine provides a map that specifies live pointer locations in the stack. In addition, the map identifies those locations in the stack that contain other forms of live data, such as integers. All other locations are considered 'dead', i.e., no longer in use or never used. At each garbage collection point, 'dead' locations in the stack are overwritten with an invalid pointer value. Because of the overwriting process, any bug in the compiler that causes a live pointer to be omitted from the map also causes the omitted pointer to be overwritten with the invalid pointer value. Regardless of whether garbage collection is actually performed at the garbage collection point where the pointer was omitted from the compiler-generated map, subsequent execution steps that reference the omitted pointer trigger an invalid pointer error. The invalid pointer error may be trapped and identified as a compiler bug related to map generation in the garbage collection process.
(FR)
Procédé et appareil pour découvrir les bogues liés à la récupération'espace mémoire dans une machine virtuelle. Pour chaque point de récupération d'espace mémoire possible dans une chaîne d'exécution, un compilateur dans la machine virtuelle fournit une topographie spécifiant les emplacements des pointeurs réels dans la pile. De plus, la topographie identifie ces emplacements dans la pile contenant d'autres formes de données réelles, telles que des nombres entiers. Tous les autres emplacements sont considérés comme 'morts', c'est-à-dire, qu'ils ne sont plus utilisés ou jamais utilisés. A chaque point de récupération d'espace mémoire, des emplacements 'morts' dans la pile sont écrasés avec une valeur de pointeur invalide. A cause du processus d'écrasement, un bogue éventuel se trouvant dans le compilateur provoquant l'omission du pointeur réel de la topographie provoque également l'écrasement du pointeur omis avec la valeur de pointeur invalide. Indépendamment de l'exécution en cours de la récupération d'espace mémoire au niveau du point de récupération d'espace mémoire où le pointeur a été omis dans la topographie produite par le compilateur, des étapes d'exécution subséquentes faisant référence au pointeur omis déclenchent une erreur de pointeur invalide. L'erreur de pointeur invalide peut être piégée et identifiée comme étant un bogue compilateur relative à la production de la topographie dans le processus de récupération d'espace mémoire.
Also published as
Latest bibliographic data on file with the International Bureau