tensorflow / swift

Swift for TensorFlow
https://tensorflow.org/swift
Apache License 2.0
6.12k stars 608 forks source link

lldb's script command not working on Ubuntu #219

Open cgarciae opened 5 years ago

cgarciae commented 5 years ago

I am trying to use vscode-lldb to debug my programs, however, vscode-lldb uses the lldb's script command behind the curtains and this is crashing.

Setup

How to reproduce

Try to run the script command inside lldb

$ lldb
(lldb) script

Output:

lldb[0x41f9c4]
lldb[0x41da0c]
lldb[0x41ff58]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7fd0f6144890]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyModule_GetState+0xb)[0x7fd0ecda993b]
/usr/lib/python3.6/lib-dynload/readline.cpython-36m-x86_64-linux-gnu.so(+0x412e)[0x7fd0e1f6612e]
/usr/lib/x86_64-linux-gnu/libedit.so.2(rl_initialize+0x4e1)[0x7fd0eca4a441]
/usr/lib/python3.6/lib-dynload/readline.cpython-36m-x86_64-linux-gnu.so(PyInit_readline+0x159)[0x7fd0e1f65fd9]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyImport_LoadDynamicModuleWithSpec+0x18c)[0x7fd0ecde8dcc]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x186bd5)[0x7fd0ecdeabd5]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1)[0x7fd0ecdac0d1]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x7a50)[0x7fd0ece4e450]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21bbab)[0x7fd0ece7fbab]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c29e)[0x7fd0ece8029e]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2c3)[0x7fd0ece7ffb3]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131)[0x7fd0ece99ec1]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6)[0x7fd0ece9a6b6]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x47c)[0x7fd0eced985c]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x7bca)[0x7fd0ece4e5ca]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21bbab)[0x7fd0ece7fbab]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7fd0ece8067e]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7fd0ece4680b]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1ee17d)[0x7fd0ece5217d]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc1)[0x7fd0ecdac0d1]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x7a50)[0x7fd0ece4e450]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21bbab)[0x7fd0ece7fbab]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c29e)[0x7fd0ece8029e]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21c472)[0x7fd0ece80472]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x5170)[0x7fd0ece4bb70]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21a953)[0x7fd0ece7e953]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyFunction_FastCallDict+0x2c3)[0x7fd0ece7ffb3]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x131)[0x7fd0ece99ec1]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xe6)[0x7fd0ece9a6b6]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x47c)[0x7fd0eced985c]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x7bca)[0x7fd0ece4e5ca]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x21bbab)[0x7fd0ece7fbab]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7fd0ece8067e]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7fd0ece4680b]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyRun_StringFlags+0x8f)[0x7fd0ecd7e28f]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyRun_SimpleStringFlags+0x3b)[0x7fd0ecd7f32b]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xf202c0)[0x7fd0ef7b92c0]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xf1fe83)[0x7fd0ef7b8e83]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xf21443)[0x7fd0ef7ba443]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xa17dce)[0x7fd0ef2b0dce]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0x9d3b80)[0x7fd0ef26cb80]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xab740a)[0x7fd0ef35040a]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xab5d1e)[0x7fd0ef34ed1e]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xaacc85)[0x7fd0ef345c85]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xab07eb)[0x7fd0ef3497eb]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0x9eff81)[0x7fd0ef288f81]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0x9d4516)[0x7fd0ef26d516]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(+0xab1696)[0x7fd0ef34a696]
/home/cristian/.swift/tf-0.4.0-rc2/usr/bin/../lib/liblldb.so.7svn(_ZN4lldb10SBDebugger21RunCommandInterpreterEbb+0xe6)[0x7fd0eeffbe56]
lldb[0x40a0d5]
lldb[0x40b307]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fd0ed337b97]
lldb[0x40670a]
Stack dump:
0.      Program arguments: lldb 
fish: “lldb” terminated by signal SIGSEGV (Address boundary error)

Swift 5.1-dev

This same setup works in Swift 5.1 dev version found here, vscode-lldb works fine is this case. I notice that here python 2.7 is used whereas in S4TF python 3.6 is trying to be used.

dan-zheng commented 4 years ago

Bump: this issue is reproducible from Swift for TensorFlow nightly toolchains:

$ usr/bin/lldb --version
lldb version 7.0.0 (https://github.com/apple/llvm-project.git revision 8ec2a24d414c19db71543c49fa0ddef2b9b0e3a5)
Swift version 5.2-dev (Swift 12a8129143)

$ usr/bin/lldb
(lldb) script
Stack dump:
0.  Program arguments: usr/bin/lldb
usr/bin/lldb[0x421d04]
usr/bin/lldb[0x41fd0e]
usr/bin/lldb[0x4222a6]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f0700e2a890]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyModule_GetState+0xb)[0x7f06f72dd15b]
/usr/lib/python3.6/lib-dynload/readline.cpython-36m-x86_64-linux-gnu.so(+0x40ce)[0x7f06f0f890ce]
/usr/lib/x86_64-linux-gnu/libedit.so.2(rl_initialize+0x4e1)[0x7f06f6cac441]
/usr/lib/python3.6/lib-dynload/readline.cpython-36m-x86_64-linux-gnu.so(PyInit_readline+0x159)[0x7f06f0f88f79]
/usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyImport_LoadDynamicModuleWithSpec+0x183)[0x7f06f722abf3]
...
********************
[1]    22708 segmentation fault (core dumped)  usr/bin/lldb

I wonder if this issue is producible with development toolchains from swift.org/download.

brettkoonce commented 4 years ago

@dan-zheng seeing a crash/dump running lldb; script with:

swift-tensorflow-RELEASE-0.6-cuda10.1-cudnn7-ubuntu18.04.tar.gz

build, fwiw.