Bug #4630

PROCDEBUG to non-zero values causes segmentation faults in check_env in trunk

Added by Elise Huard 10 months ago. Updated 8 months ago.

[ruby-core:35940]
Status:Assigned Start date:04/29/2011
Priority:Low Due date:
Assignee:Koichi Sasada % Done:

0%

Category:core
Target version:2.0.0
ruby -v:-

Description

PROCDEBUG is meant to show debugging output from the vm. However, when it's activated in vm.c 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.

History

Updated by Koichi Sasada 9 months ago

  • ruby -v changed from 1.9.3dev to -
Hi, (2011/04/29 4:52), Elise Huard wrote: > 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. Oops. I don't touch it on long time (because there is no bug which requires this debug option). So maybe this check_env() doesn't catch up Proc data structure. -- // SASADA Koichi at atdot dot net

Updated by Koichi Sasada 9 months ago

  • Category set to core
  • Status changed from Open to Assigned
  • Assignee set to Koichi Sasada
  • Priority changed from Normal to Low

Updated by Hiroshi Nakamura 8 months ago

  • Target version set to 2.0.0

Also available in: Atom PDF