| Index: tools/gypv8sh.py
|
| diff --git a/tools/gypv8sh.py b/tools/gypv8sh.py
|
| index ad6fa4a36328c24e7e7dc5df1b165fb773c395d4..8e8fd59fb1a27a3080636da580bbf84fb845607a 100755
|
| --- a/tools/gypv8sh.py
|
| +++ b/tools/gypv8sh.py
|
| @@ -50,12 +50,38 @@ def main ():
|
| if p.returncode:
|
| # TODO(jochen): Remove once crbug.com/370551 is resolved.
|
| if sys.platform == 'darwin':
|
| - cmd[:0] = ['gdb', '-batch', '-ex', 'run', '-ex', 'bt', '-ex', 'quit',
|
| - '-args']
|
| - p = subprocess.Popen(
|
| - cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=0)
|
| - out, err = p.communicate()
|
| - raise Exception('Failed to run d8', out, err)
|
| + sys.path.insert(0, '/Developer/Library/PrivateFrameworks/'
|
| + 'LLDB.framework/Resources/Python')
|
| + try:
|
| + import lldb
|
| + except:
|
| + raise Exception("Could not load lldb module")
|
| + debugger = lldb.SBDebugger.Create()
|
| + debugger.SetAsync(False)
|
| + target = debugger.CreateTargetWithFileAndArch(
|
| + cmd[0], lldb.LLDB_ARCH_DEFAULT)
|
| + if not target:
|
| + raise Exception("Failed to create d8 target")
|
| + process = target.LaunchSimple(cmd[1:], None, os.getcwd())
|
| + if not process:
|
| + raise Exception("Failed to start d8")
|
| + if process.GetState() == lldb.eStateStopped:
|
| + for thread in process:
|
| + print "Thread (id %d)" % thread.GetThreadID()
|
| + for frame in thread:
|
| + print frame
|
| + print ""
|
| + raise Exception(
|
| + "d8 crashed, please report this at http://crbug.com/370551")
|
| + else:
|
| + # For some reason d8 worked this time...
|
| + out = ''
|
| + while True:
|
| + s = process.GetSTDOUT(4096)
|
| + if s == '':
|
| + break
|
| + out += s
|
| +
|
| with open(cxxoutfile, 'wb') as f:
|
| f.write(out)
|
| shutil.copyfile(inputfile, jsoutfile)
|
|
|