• Ben Newman's avatar
    [debug] Fully implement Debug::ArchiveDebug and Debug::RestoreDebug. · a8f68691
    Ben Newman authored
    I have a project that embeds V8 and uses a single `Isolate` from multiple
    threads. The program runs just fine, but sometimes the inspector doesn't
    stop on the correct line after stepping over a statement that switches
    threads behind the scenes, even though the original thread is restored by
    the time the next statement is executed.
    
    After some digging, I discovered that the `Debug::ArchiveDebug` and
    `Debug::RestoreDebug` methods, which should be responsible for
    saving/restoring this `ThreadLocal` information when switching threads,
    currently don't do anything.
    
    This commit implements those methods using MemCopy, in the style of other
    Archive/Restore methods in the V8 codebase.
    
    Related: https://groups.google.com/forum/#!topic/v8-users/_Qf2rwljRk8
    
    Note: I believe my employer, Meteor Development Group, has previously
    signed the CLA using the group email address google-contrib@meteor.com.
    
    R=yangguo@chromium.org,jgruber@chromium.org
    CC=info@bnoordhuis.nl
    
    Bug: v8:7230
    Change-Id: Id517c873eb81cd53f7216c7efd441b956cf7f943
    Reviewed-on: https://chromium-review.googlesource.com/833260
    Commit-Queue: Yang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54902}
    a8f68691
v8threads.cc 10.8 KB