Project

General

Profile

Bug #4630

Updated by ko1 (Koichi Sasada) about 7 years ago

 =begin 
 PROCDEBUG is meant to show debugging output from the vm. 
 However, when it's activated in vm.c 
 #define PROCDEBUG 1 
 The make process fails in segmentation faults. 

 I've narrowed it down to the following variables displayed in check_env: env->block.dfp[3] and env->block.dfp[4] 
 Commenting them out like so makes the segfaults disappear.  

 ``` 
    

   static int 
   check_env(rb_env_t * const env) 
   { 
       printf("---\n"); 
       printf("envptr: %p\n", (void *)&env->block.dfp[0]); 
       printf("orphan: %p\n", (void *)env->block.dfp[1]); 
       printf("inheap: %p\n", (void *)env->block.dfp[2]); 
       /* printf("envval: %10p ", (void *)env->block.dfp[3]); 
       dp(env->block.dfp[3]); 
       printf("penvv : %10p ", (void *)env->block.dfp[4]); 
        dp(env->block.dfp[4]); */ 
       printf("lfp:      %10p\n", (void *)env->block.lfp); 
       printf("dfp:      %10p\n", (void *)env->block.dfp); 
     /*    if (env->block.dfp[4]) { 
           printf(">>\n"); 
           check_env_value(env->block.dfp[4]); 
           printf("<<\n"); 
       } */ 
       return 1; 
   } 
 ``` 

 However, I'm not clued up enough on the inner workings of the VM to say why or how that should be fixed intelligently. 

 
 =end 

Back