Skip to content

Use of variables + for loop + switch in a generator function causes inspector to crash #11746

Description

@matthewp
  • Version: 7.6.0
  • Platform: Darwin Matthews-MBP-2.lan 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58
  • Subsystem: Unknown

I was able to reduce it down to this code:

tcase.js

function* serialize() {
  for(let i = 0; i < 10; i++) {
    let value;
    let section = {};

    debugger;

    switch('foo') {
      case 'bar':
        let items = [];
        break;
    }
  }
}

let gen = serialize();
gen.next();

Run with node --debug-brk --inspect tcase.js. Stop on the debugger and then click to step over. It will crash with 1] 50320 illegal hardware instruction node --debug-brk --inspect tcase.js.

I dumped the output into this gist.

Activity

  1. targos commented on Mar 8, 2017

    @targos
    Member

    I can reproduce on master

  2. added
    inspectorIssues and PRs related to the V8 inspector protocol.
    v8 engineIssues and PRs related to the V8 dependency.
    on Mar 8, 2017
  3. targos commented on Mar 8, 2017

    @targos
    Member

    Backtrace with a debug build:

    (gdb) bt
    #0  v8::base::OS::Abort () at ../deps/v8/src/base/platform/platform-posix.cc:230
    #1  0x00000000026fb2b7 in V8_Fatal (file=0x293a348 "../deps/v8/src/debug/debug-scopes.cc", line=257, format=0x293983a "Check failed: %s.") at ../deps/v8/src/base/logging.cc:67
    #2  0x0000000001cc562f in v8::internal::ScopeIterator::Type (this=0x7fffffffa4f0) at ../deps/v8/src/debug/debug-scopes.cc:257
    #3  0x0000000001cc4d5f in v8::internal::ScopeIterator::MaterializeScopeDetails (this=0x7fffffffa4f0) at ../deps/v8/src/debug/debug-scopes.cc:179
    #4  0x000000000210307a in v8::internal::__RT_impl_Runtime_GetAllScopesDetails (args=..., isolate=0x3863600) at ../deps/v8/src/runtime/runtime-debug.cc:886
    #5  0x0000000002102ca7 in v8::internal::Runtime_GetAllScopesDetails (args_length=4, args_object=0x7fffffffaa48, isolate=0x3863600) at ../deps/v8/src/runtime/runtime-debug.cc:861
    #6  0x0000273d428843a7 in ?? ()
    #7  0x0000273d429dfa8e in ?? ()
    #8  0x0000273d428842e1 in ?? ()
    #9  0x00007fffffffaa00 in ?? ()
    #10 0x0000000300000000 in ?? ()
    #11 0x00007fffffffaa78 in ?? ()
    #12 0x0000273d429df5f5 in ?? ()
    #13 0x0000140895d02421 in ?? ()
    #14 0x0000000000000000 in ?? ()
    
  4. changed the title [-]Use of variables + for loop + switch in a generator function cases inspector to crash[/-] [+]Use of variables + for loop + switch in a generator function causes inspector to crash[/+] on Mar 8, 2017
  5. hashseed commented on Mar 10, 2017

    @hashseed
    Member

    Will take a look.

  6. hashseed commented on Mar 13, 2017

    @hashseed
    Member

    I can reproduce this in d8. File V8 bug here: https://bugs.chromium.org/p/v8/issues/detail?id=6085

  7. hashseed commented on Mar 13, 2017

    @hashseed
    Member

    Fix upcoming.

  8. hashseed commented on Mar 13, 2017

    @hashseed
    Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues and PRs for confirmed bugs.inspectorIssues and PRs related to the V8 inspector protocol.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions