[lldb-dev] New linux process plugin

Stephen Wilson wilsons at start.ca
Fri Jul 23 22:20:27 PDT 2010


William Lynch <wlynch at wlynch.cx> writes:

> You missed part of the patch. :)

So I did ;)  Committed r109328.

Thanks again!


> Index: lib/Makefile
> ===================================================================
> --- lib/Makefile (revision 109327)
> +++ lib/Makefile (working copy)
> @@ -65,7 +65,7 @@
>                lldbPluginObjectFileMachO.a \
>                lldbPluginProcessGDBRemote.a \
>                lldbPluginUtility.a \
> -              lldbPluginSymbolVendorMaxOSX.a
> +              lldbPluginSymbolVendorMacOSX.a
>  endif
>  
>  ifeq ($(HOST_OS),Linux)
>
>
> On Fri, Jul 23, 2010 at 11:12 PM, Stephen Wilson <wilsons at start.ca> wrote:
>
>     Hi William,
>
>     Thanks so much for testing!  Very much appreciated!
>
>     Applied both patches as r109327.
>
>     Take care,
>     Steve
>
>     William Lynch <wlynch at wlynch.cx> writes:
>
>     > The previous patch will allow lldb to finish building. However, on 10.5,
>     I get
>     > a linker error at startup time. It's missing source/Plugins/Process/
>     MacOSX-User
>     > in lldb.dylib. However, at least on my machine, that subdirectory needs
>     some
>     > work to properly compile.
>     >
>     > Index: source/Plugins/Makefile
>     > ===================================================================
>     > --- source/Plugins/Makefile (revision 109318)
>     > +++ source/Plugins/Makefile (working copy)
>     > @@ -18,7 +18,8 @@
>     >  
>     >  ifeq ($(HOST_OS),Darwin)
>     >  DIRS += DynamicLoader/MacOSX-DYLD ObjectContainer/Universal-Mach-O \
>     > - ObjectFile/Mach-O Process/gdb-remote Process/Utility SymbolVendor/
>     MacOSX
>     > + ObjectFile/Mach-O Process/gdb-remote Process/Utility SymbolVendor/
>     MacOSX \
>     > + Process/MacOSX-User
>     >  endif
>     >  
>     >  ifeq ($(HOST_OS),Linux)
>     >
>     >
>     > On Fri, Jul 23, 2010 at 10:37 PM, William Lynch <wlynch at wlynch.cx> wrote:
>     >
>     >     A very small patch which should help building on Darwin:
>     >
>     >     Index: lib/Makefile
>     >     ===================================================================
>     >     --- lib/Makefile (revision 109318)
>     >     +++ lib/Makefile (working copy)
>     >     @@ -65,7 +65,7 @@
>     >                    lldbPluginObjectFileMachO.a \
>     >                    lldbPluginProcessGDBRemote.a \
>     >                    lldbPluginUtility.a \
>     >     -              lldbSymbolVendorMaxOSX.a
>     >     +              lldbPluginSymbolVendorMacOSX.a
>     >      endif
>     >      
>     >      ifeq ($(HOST_OS),Linux)
>     >
>     >
>     >     On Fri, Jul 23, 2010 at 9:19 PM, Stephen Wilson <wilsons at start.ca>
>     wrote:
>     >
>     >         Hi all,
>     >
>     >         I just pushed the new linux process plugin.  A few notes:
>     >
>     >         I updated the makefiles to build only under linux.  I do not know
>     if
>     >         this will build on a mac.  Perhaps someone can try and let me
>     know the
>     >         result.
>     >
>     >         Only very basic breakpoint/step-over functionality is present.
>      For
>     >         example, we cannot resolve pending breakpoints yet, so one must
>     set
>     >         breakpoints with the debugee stopped on entry.
>     >
>     >         Only x86_64 at the moment (will add i386 soon).
>     >
>     >         Here is a simple example of what is working for those who might
>     like to
>     >         test it out:
>     >
>     >         ===
>     >        
>     --------------------------------------------------------------------------
>     >         ===
>     >          > cat ctest.c
>     >
>     >           void foo() { return; }
>     >
>     >           void bar() { return; }
>     >
>     >           int main()
>     >           {
>     >               foo();
>     >               bar();
>     >               return 0;
>     >           }
>     >
>     >          > lldb ./ctest
>     >           Current executable set to './ctest' (x86_64).
>     >           (lldb) r -s
>     >           Launching '/home/steve/tmp/ctest'  (x86_64)
>     >           (lldb) Process 0 Launching
>     >           Process 0 Stopped
>     >           * thread #1: tid = 0x4789, pc = 0x0000003206200af0, ...
>     >           (lldb) b s -n foo
>     >           Breakpoint created: 1: name = 'foo', locations = 1, resolved =
>     1
>     >           (lldb) b s -n bar
>     >           Breakpoint created: 2: name = 'bar', locations = 1, resolved =
>     1
>     >           (lldb) p c
>     >           Resuming process 0
>     >           (lldb) Process 0 Stopped
>     >           * thread #1: tid = 0x4789, pc = 0x0000000000400478, ...
>     >              1
>     >              2 ->      void foo() { return; }
>     >              3
>     >              4         void bar() { return; }
>     >              5
>     >           (lldb) p c
>     >           Resuming process 0
>     >           (lldb) Process 0 Stopped
>     >           * thread #1: tid = 0x4789, pc = 0x000000000040047e, ...
>     >              1
>     >              2         void foo() { return; }
>     >              3
>     >              4 ->      void bar() { return; }
>     >              5
>     >              6         int main()
>     >              7         {
>     >           (lldb) q
>     >         ===
>     >        
>     --------------------------------------------------------------------------
>     >         ===
>     >
>     >
>     >         It's a start.  Let be know of any issues, comments, advice, etc.
>     >
>     >         Thanks!
>     >         Steve
>     >         _______________________________________________
>     >         lldb-dev mailing list
>     >         lldb-dev at cs.uiuc.edu
>     >         http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list