[lldb-dev] Where is lldb.py?
Deepak Panickal
deepak at codeplay.com
Wed Jul 2 12:27:37 PDT 2014
That problem is due to PYTHONPATH not being exported to the location
where the python packages are built.
Similar to Linux, you have to export PYTHONPATH to
build_dir/lib/site-packages/python.
The _lldb.pyd file symlinks to liblldb.dll on Windows.
Regardles, you would still get an error on the command-line due to the
missing python termios module on Windows.
In ScriptInterpreterPython.cpp:2628, the termios module is imported,
which would fail immediately.
PyRun_SimpleString ("sys.dont_write_bytecode = 1; import
lldb.embedded_interpreter; from lldb.embedded_interpreter import
run_python_interpreter; from lldb.embedded_interpreter import
run_one_line; from termios import *");
We have yet to solve this dependency on Windows.
However, we can use the API directly for now.
AFAIK, these modules are only used for the command-line interpreter, so
does not affect using the API directly.
If we comment out these out, we can run the examples in
lldb/examples/python/, such as globals.py to load an ELF file and dump
the globals using the Python API on Windows.
Thanks,
Deepak
On 02/07/2014 19:48, Zachary Turner wrote:
> One more problem. Compiled successfully, and ran LLDB. Upon startup
> I get this warning:
>
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> ImportError: No module named lldb.embedded_interpreter
> (lldb)
>
> So something is wrong there. Typing "script" with no arguments gives
> this:
>
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> NameError: name 'run_one_line' is not defined
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> NameError: name 'run_one_line' is not defined
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> NameError: name 'run_one_line' is not defined
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> NameError: name 'run_one_line' is not defined
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> NameError: name 'run_one_line' is not defined
>
> Just curious, what has been your use case for this so far? Do you
> have it working on your end? If so, what kind of things can you
> successfully do with it?
>
>
> On Tue, Jul 1, 2014 at 4:52 PM, Deepak Panickal <deepak at codeplay.com
> <mailto:deepak at codeplay.com>> wrote:
>
> Thanks, I'll look into the CMake warning.
>
> For now, you have to enable the variable
> LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION specifically to use
> the new python scripts, when LLDB_DISABLE_PYTHON is disabled.
> Which is why not using the variable would break the build on
> Windows. On Linux, it would work both ways.
>
> I added this variable so that the new scripts can be tested
> without affecting normal builds on other platforms.
> Could you please try,
> cmake*-DLLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION=1*
> -DLLDB_DISABLE_PYTHON=0 -DPYTHON_INCLUDE_DIR=c:\python27\include
> -DPYTHON_LIBRARY=C:\Python27\libs\python27.lib ..\..
>
> Thanks,
> Deepak
>
>
> On 01/07/2014 23:56, Zachary Turner wrote:
>> Also getting the following error:
>>
>> For reference, I ran cmake as
>>
>> cmake -DLLDB_DISABLE_PYTHON=0
>> -DPYTHON_INCLUDE_DIR=c:\python27\include
>> -DPYTHON_LIBRARY=C:\Python27\libs\python27.lib ..\..
>>
>> D:\src\llvm\build\ninja>ninja lldb
>> [88/433] Building lldb python wrapper
>> FAILED: cmd.exe /c cd /D
>> D:\src\llvm\build\ninja\tools\lldb\scripts && env
>> PYTHON_EXECUTABLE=C:/Python27/python.exe
>> D:/src/llvm/tools/lldb/scripts/build-swig-wrapper-classes.sh
>> D:/src/llvm/tools/lldb D:/src/llvm/build/ninja/tools/lldb/scripts
>> D:/src/llvm/build/ninja/tools/lldb/scripts D:/src/llvm/bu
>> ild/ninja -m && env PYTHON_EXECUTABLE=C:/Python27/python.exe
>> D:/src/llvm/tools/lldb/scripts/finish-swig-wrapper-classes.sh
>> D:/src/llvm/tools/lldb D:/src/llvm/build/ninja/tools/lldb/scripts
>> D:/src/llvm/build/ninja/tools/lldb/scripts D:/src/llvm/build/ninja -m
>> env:
>> D:/src/llvm/tools/lldb/scripts/build-swig-wrapper-classes.sh:
>> Exec format error
>> [88/433] Building CXX object
>> tools\lldb\source\Plugins\Process\mach-core\CMakeFiles\lldbPluginProcessMachCore.dir\ProcessMachCore.cpp.obj
>> ninja: build stopped: subcommand failed.
>>
>>
>>
>> On Tue, Jul 1, 2014 at 3:41 PM, Zachary Turner
>> <zturner at google.com <mailto:zturner at google.com>> wrote:
>>
>> I get the following warning when running cmake with no
>> special options passed via -D
>>
>> CMake Warning (dev) at tools/lldb/CMakeLists.txt:234
>> (target_link_libraries):
>> Policy CMP0023 is not set: Plain and keyword
>> target_link_libraries
>> signatures cannot be mixed. Run "cmake --help-policy
>> CMP0023" for policy
>> details. Use the cmake_policy command to set the policy
>> and suppress this
>> warning.
>>
>> The keyword signature for target_link_libraries has already
>> been used with
>> the target "liblldb". All uses of target_link_libraries
>> with a target
>> should be either all-keyword or all-plain.
>>
>> The uses of the keyword signature are here:
>>
>> * cmake/modules/AddLLVM.cmake:331 (target_link_libraries)
>>
>> Call Stack (most recent call first):
>> tools/lldb/source/CMakeLists.txt:214 (add_lldb_library)
>> This warning is for project developers. Use -Wno-dev to
>> suppress it.
>>
>>
>> On Tue, Jul 1, 2014 at 10:54 AM, Deepak Panickal
>> <deepak at codeplay.com <mailto:deepak at codeplay.com>> wrote:
>>
>> Hi,
>>
>> I'm planning to upstream the Windows Python API changes now.
>>
>> This has been done by completely rewriting the shell
>> scripts used for the API generation in Python so that
>> it's portable across different platforms. We have tested
>> it on both Windows and Linux successfully.
>>
>> I have added a new CMake variable
>> "LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION", to
>> control if the new Python scripts for managing SWIG
>> generating the API are enabled or not. This is disabled
>> by default to not impact other platforms. This variable
>> can be removed once we move all the platforms to the
>> Python scripts from the shell scripts. There's some
>> cleanup to be done, which I'll be working on.
>>
>> Please let me know if there are any issues or comments.
>>
>> Thanks,
>> Deepak
>>
>>
>> On 24/06/14 12:23, Deepak Panickal wrote:
>>> Yes, it was compiling with MSVC 2013. It hasn't been
>>> updated though since the review was submitted.
>>> We're working on it now, so should be fixed to current
>>> tip and upstreamed soon.
>>>
>>> Thanks,
>>> Deepak
>>>
>>> On 24/06/14 01:24, Zachary Turner wrote:
>>>> By the way, does this compile with MSVC 2013? Many of
>>>> the changes I had to make to get things compiling don't
>>>> seem to be present in this patch.
>>>>
>>>>
>>>> On Mon, Jun 23, 2014 at 5:16 PM, Zachary Turner
>>>> <zturner at google.com <mailto:zturner at google.com>> wrote:
>>>>
>>>> Interesting. I had already made some progress
>>>> towards this in my own branch, so I'll have a look.
>>>>
>>>> BTW, I'm not sure what your solution was regarding
>>>> the missing python modules, but the pexpect one in
>>>> particualr is pretty trivial to fix. Just change
>>>> it to subprocess.run() and remove the import of
>>>> pexpect.
>>>>
>>>>
>>>> On Mon, Jun 23, 2014 at 5:09 PM, Deepak Panickal
>>>> <deepak at codeplay.com <mailto:deepak at codeplay.com>>
>>>> wrote:
>>>>
>>>> We have already ported the lldb.py generating
>>>> scripts to Python for portability and got the
>>>> API working in Windows and Linux.
>>>> We can load an ELF file, dump symbols, do
>>>> remote debugging etc.
>>>> This work has been put into review sometime
>>>> ago, so might need some updation.
>>>>
>>>> http://reviews.llvm.org/D2980
>>>> <http://llvm-reviews.chandlerc.com/D2980>
>>>>
>>>> We're planning to fix it up quite soon to match
>>>> with the current tip.
>>>>
>>>> Thanks,
>>>> Deepak
>>>>
>>>>
>>>> On 23/06/2014 22:09, Zachary Turner wrote:
>>>>> I'm already volunteering, just want to make
>>>>> sure it's ok before I do the work :)
>>>>>
>>>>> That being said, Greg mentions in an earlier
>>>>> message that it might not be possible because
>>>>> we wish to support a Python-less build. Who
>>>>> uses this out of curiosity? I don't think any
>>>>> Windows developers mind installing Python as a
>>>>> requirement. It's also mentioned on the
>>>>> Building LLDB page
>>>>> (http://lldb.llvm.org/build.html) that Python
>>>>> is a dependency
>>>>>
>>>>>
>>>>> On Mon, Jun 23, 2014 at 2:07 PM, Todd Fiala
>>>>> <tfiala at google.com <mailto:tfiala at google.com>>
>>>>> wrote:
>>>>>
>>>>> You can volunteer to write it more
>>>>> portably ;-)
>>>>>
>>>>>
>>>>> On Mon, Jun 23, 2014 at 1:55 PM, Zachary
>>>>> Turner <zturner at google.com
>>>>> <mailto:zturner at google.com>> wrote:
>>>>>
>>>>> Hmm, a shell script. kind of a
>>>>> non-starter for Windows. Any reason
>>>>> this can't be a python script?
>>>>>
>>>>>
>>>>> On Mon, Jun 23, 2014 at 1:52 PM, Greg
>>>>> Clayton <gclayton at apple.com
>>>>> <mailto:gclayton at apple.com>> wrote:
>>>>>
>>>>> It is generated by running swig
>>>>> with many options. See:
>>>>>
>>>>> lldb/scripts/build-swig-wrapper-classes.sh
>>>>>
>>>>>
>>>>>
>>>>> > On Jun 23, 2014, at 1:41 PM,
>>>>> Zachary Turner <zturner at google.com
>>>>> <mailto:zturner at google.com>> wrote:
>>>>> >
>>>>> > I'm trying to get the test suite
>>>>> into a working state on windows,
>>>>> or at the very least get it to the
>>>>> point where it fails by saying
>>>>> that none of the tests are
>>>>> supported on this platform. I
>>>>> seem to be missing this file
>>>>> lldb.py though. Is it supposed to
>>>>> be in the tree, or is it generated
>>>>> somehow?
>>>>> >
>>>>> _______________________________________________
>>>>> > lldb-dev mailing list
>>>>> > lldb-dev at cs.uiuc.edu
>>>>> <mailto:lldb-dev at cs.uiuc.edu>
>>>>> >
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> lldb-dev mailing list
>>>>> lldb-dev at cs.uiuc.edu
>>>>> <mailto:lldb-dev at cs.uiuc.edu>
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Todd Fiala | Software Engineer |
>>>>> tfiala at google.com
>>>>> <mailto:tfiala at google.com> | 650-943-3180
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> lldb-dev mailing list
>>>>> lldb-dev at cs.uiuc.edu <mailto:lldb-dev at cs.uiuc.edu>
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>
>>>>
>>>> _______________________________________________
>>>> lldb-dev mailing list
>>>> lldb-dev at cs.uiuc.edu <mailto:lldb-dev at cs.uiuc.edu>
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at cs.uiuc.edu <mailto:lldb-dev at cs.uiuc.edu>
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140702/a1c7054d/attachment.html>
More information about the lldb-dev
mailing list