Hi Zachary,

Ok so I did end up reconfiguring it and rebuilding but that was no help . I then realized that I was importing python27.dll as well as python27_d.dll . When I rebuilt liblldb I started getting an single unresolved error for imp_Py_InitModule which I guess was the symbol for the Py_InitModule4 python api which is actually a macro which is defined depending on a few flags . So I ended up rebuilding python27 and the unresolved error went away and built everything from scratch . The good news is that when I invoke the 'script' command in the lldb interpreter it doesn't crash anymore and I can use the python interpreter . I can even import the lldb module without getting the embedded interpreter Import error . However I when I actually import lldb from a python module and run it with the standalone interpreter I still get the Import Error. I have checked the PYTHONPATH which was different for the lldb embedded interpreter and updated the variable to contain the missing paths but no cigar :-( . Any suggestions ?

On 05/10/15 21:21, Zachary Turner wrote:
Can you try to regenerate CMake with that command line and see if that helps?

On Mon, Oct 5, 2015 at 1:17 PM kwadwo amankwa <q...@lunarblack.com <mailto:q...@lunarblack.com>> wrote:


    No

    On 05/10/15 21:15, Zachary Turner wrote:
    Are you using -DCMAKE_BUILD_TYPE=Debug when you generate CMake?

    On Mon, Oct 5, 2015 at 1:14 PM kwadwo amankwa <q...@lunarblack.com
    <mailto:q...@lunarblack.com>> wrote:

        Thanks for the response ,  sorry for the delay. As a matter
        of fact I actually got rid of the system python and installed
        my custom version.  I do suspect it is a linking problem
        though. When I build liblldb.dll it always loads python27.dll
        instead of python27_d.dll. Do you happen to know where the
        python27 lib is specified as an input library because the
        project properties in liblldb does not specify it . however
        the linker complains if I don't specify the lib directory in
        'additional directories' and when I do it always links to the
        python27lib. I grepped the whole build directory and two
        files SystemInitializer.obj and LLDBWrapPython.obj seem to
        contain /DEFAULTLIB:python27.lib. Do you have an idea of what
        is causing the compiler to do this ?


        On 05/10/15 19:13, Zachary Turner wrote:
        Ahh, I thought you were doing this from inside LLDB.  There
        are a couple of problems:

        1) You might be running with the system Python, not the
        custom Python you built with VS2013.  What is the value of
        `sys.executable`?
        2) Even if you are running your own Python, the regular
        Python appears to be in your `sys.path`.  You will need to
        unset PYTHONPATH and PYTHONHOME from pointing to your system
        Python.  PYTHONHOME should point to your custom Python, and
        PYTHONPATH should point to the `lib\site-packages` directory
        that I mentioned earlier in your build directory.



        On Mon, Oct 5, 2015 at 11:06 AM kwadwo amankwa
        <q...@lunarblack.com <mailto:q...@lunarblack.com>> wrote:

            here it is;

            C:\Users\redbandit\Documents\GitHub\pygui>python
            Python 2.7.10 (default, Sep 18 2015, 02:35:59) [MSC
            v.1800 64 bit (AMD64)] on win32
            Type "help", "copyright", "credits" or "license" for
            more information.
            >>> import sys
            >>> sys.path
            ['', 'C:\\Python27\\Lib',
            
'C:\\Users\\redbandit\\llvm\\build\\Debug\\lib\\site-packages\\lldb',
            'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts',
            'C:\\Users\\redbandi t\\Documents\\GitHub\\pygui',
            'C:\\Python27\\python27.zip', 'C:\\Python27\\DLLs',
            'C:\\Python27\\lib\\plat-win',
            'C:\\Python27\\lib\\lib-tk', 'C:\\Python27',
            'C:\\Python27\\li b\\site-packages']
            >>> import lldb
            Traceback (most recent call last):
              File "<string>", line 1, in <module>
            ImportError: No module named embedded_interpreter
            >>> lldb.__file__
            'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts\\lldb.pyc'

            >>> sys.path
            ['C:/Users/redbandit/llvm/build/Debug/lib/site-packages/lldb',
            
'C:/Users/redbandit/llvm/build/Debug/lib/site-packages/lib/site-packages',
            '', 'C:\\Python27\\Lib', 'C:\\Users\\
            redbandit\\llvm\\build\\Debug\\lib\\site-packages\\lldb', 
'C:\\Users\\redbandit\\llvm\\build\\tools\\lldb\\scripts',
            'C:\\Users\\redbandit\\Documents\\GitHub\\pygui',
            'C:\\Pyt hon27\\python27.zip', 'C:\\Python27\\DLLs',
            'C:\\Python27\\lib\\plat-win',
            'C:\\Python27\\lib\\lib-tk', 'C:\\Python27',
            'C:\\Python27\\lib\\site-packages', '.']


            On 05/10/15 18:48, Zachary Turner wrote:
            Can you run the followign commands and paste the output?

            >>> import sys
            >>> sys.path
            ['D:/src/llvmbuild/ninja/bin',
            'D:/src/llvmbuild/ninja/lib/site-packages',
            'D:\\src\\llvmbuild\\ninja\\bin\\python27_d.zip',
            'C:\\Python27_LLDB\\x86\\DLLs',
            'C:\\Python27_LLDB\\x86\\lib',
            'C:\\Python27_LLDB\\x86\\lib\\plat-win',
            'C:\\Python27_LLDB\\x86\\lib\\lib-tk',
            'D:\\src\\llvmbuild\\ninja\\bin'
            , 'C:\\Python27_LLDB\\x86',
            'C:\\Python27_LLDB\\x86\\lib\\site-packages', '.']
            >>> import lldb
            >>> lldb.__file__
            'D:/src/llvmbuild/ninja/lib/site-packages\\lldb\\__init__.pyc'
            >>> sys.path
            ['D:/src/llvmbuild/ninja/bin',
            'D:/src/llvmbuild/ninja/lib/site-packages',
            'D:\\src\\llvmbuild\\ninja\\bin\\python27_d.zip',
            'C:\\Python27_LLDB\\x86\\DLLs',
            'C:\\Python27_LLDB\\x86\\lib',
            'C:\\Python27_LLDB\\x86\\lib\\plat-win',
            'C:\\Python27_LLDB\\x86\\lib\\lib-tk',
            'D:\\src\\llvmbuild\\ninja\\bin'
            , 'C:\\Python27_LLDB\\x86',
            'C:\\Python27_LLDB\\x86\\lib\\site-packages', '.']
            >>>

            and also make sure that in the same folder as your
            _lldb_d.pyd, there is an embedded_interpreter.py?

            On Mon, Oct 5, 2015 at 9:14 AM kwadwo amankwa
            <q...@lunarblack.com <mailto:q...@lunarblack.com>> wrote:

                Hi Zachary,

                thanks for the reply , I did use MSBUILD  as Ninja
                didn't work for me on my system.  As far as the
                _lldb_d.pyd file is concerned it is stored in the
                same place.  and it is being used by lldb.py
                because everything else works besides the
                embedded_interpreter. That is I am able to use the
                api from python it is just that interpreter issue
                that comes up .

                Cheers,
                Que


                On 05/10/15 16:56, Zachary Turner wrote:
                Are you using MSBuild or Ninja to build (i.e. are
                you clicking the Build Solution button in Visual
                Studio or running ninja from command line)?  I
                don't know where it puts this stuff with a VS2013
                build, but with a ninja build, your directory will
                be organized like this:

                build
                |___bin
                     |___lldb.exe
                     |___liblldb.dll
                |___lib
                     |___site-packages
                           |___lldb
                 |___lldb_d.pyd   // If this is a debug build,
                lldb.pyd if release

                I'm betting you're missing the pyd file.  Can you
                confirm? Then we can diagnose that if it turns out
                to be the problem.

                On Mon, Oct 5, 2015 at 5:20 AM kwadwo amankwa via
                lldb-dev <lldb-dev@lists.llvm.org
                <mailto:lldb-dev@lists.llvm.org>> wrote:

                    Hi guys,

                    Can someone point me in the right direction on
                    this . I have managed to
                    set up my environment on windows , compiling
                    python2.7.10 using VS2013
                    and building llvm/lldb in VS2013. lldb and all
                    its libraries build
                    successfully so its just when I import lldb
                    into my python project I get
                    this error.

                    File "<string>", line 1, in <module>
                    Import error: No module named embedded_interpreter

                      Also when I use the 'script' command in the
                    lldb interpreter , lldb
                    completely crashes  with an unhandled
                    exception in the python
                    file_write  function (fileobject.c:1852)

                    n2 = fwrite(s, 1, n, f->f_fp);

the call to fwrite causes an access violation . My intuition tells me
                    that i'm missing  a lib or something but I
                    can't put my finger on it.
                    Please Help !


                    _______________________________________________
                    lldb-dev mailing list
                    lldb-dev@lists.llvm.org
                    <mailto:lldb-dev@lists.llvm.org>
                    http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev






_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to