<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    gdbserver support is really something that fits well in the core of
    gdb-remote as any development efforts<br>
    in supporting lldb-gdbserver and gdbserver will benefit each other,
    which wouldn't be the case if gdbserver support<br>
    it pushed into a fringe python script.<br>
    <br>
    I have had success building libxml2 from source on windows, which
    was my main concern, and the process was relatively painless.<br>
    I don't think it will be too much of a hassle to build lldb with xml
    support on windows, and likely free on unix systems.<br>
    <br>
    Coupling python and gdbserver support sounds bad in the long term,
    so I'll continue in favor of libxml2.<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 01/04/2015 18:19, Colin Riley wrote:<br>
    </div>
    <blockquote cite="mid:201504011719.t31HJcaV016701@mail.codeplay.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div>
        <div style="font-family: Calibri,sans-serif; font-size: 11pt;">In
          my opinion, forcing python is worse. </div>
      </div>
      <div dir="ltr">
        <hr><span style="font-family: Calibri,sans-serif; font-size:
          11pt; font-weight: bold;">From: </span><span
          style="font-family: Calibri,sans-serif; font-size: 11pt;"><a
            moz-do-not-send="true"
            href="mailto:ted.woodward@codeaurora.org">Ted Woodward</a></span><br>
        <span style="font-family: Calibri,sans-serif; font-size: 11pt;
          font-weight: bold;">Sent: </span><span style="font-family:
          Calibri,sans-serif; font-size: 11pt;">‎01/‎04/‎2015 17:42</span><br>
        <span style="font-family: Calibri,sans-serif; font-size: 11pt;
          font-weight: bold;">To: </span><span style="font-family:
          Calibri,sans-serif; font-size: 11pt;"><a
            moz-do-not-send="true" href="mailto:zturner@google.com">'Zachary
            Turner'</a>; <a moz-do-not-send="true"
            href="mailto:vince@nethacker.com">'Vince Harron'</a></span><br>
        <span style="font-family: Calibri,sans-serif; font-size: 11pt;
          font-weight: bold;">Cc: </span><span style="font-family:
          Calibri,sans-serif; font-size: 11pt;"><a
            moz-do-not-send="true" href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a></span><br>
        <span style="font-family: Calibri,sans-serif; font-size: 11pt;
          font-weight: bold;">Subject: </span><span style="font-family:
          Calibri,sans-serif; font-size: 11pt;">Re: [lldb-dev]
          Increasing support for other gdbservers</span><br>
        <br>
      </div>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);
            font-family: "Calibri",sans-serif; font-size:
            11pt;">But which is a worse dependency when we want to parse
            gdbserver’s xml files – add a dependency to libxml2, or
            force python?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color: rgb(31, 73, 125);
            font-family: "Calibri",sans-serif; font-size:
            11pt;"><o:p> </o:p></span></p>
        <p class="MsoNormal"><b><span style="font-family:
              "Calibri",sans-serif; font-size: 11pt;">From:</span></b><span
            style="font-family: "Calibri",sans-serif;
            font-size: 11pt;"> Zachary Turner
            [<a class="moz-txt-link-freetext" href="mailto:zturner@google.com">mailto:zturner@google.com</a>] <br>
            <b>Sent:</b> Wednesday, April 01, 2015 10:37 AM<br>
            <b>To:</b> Ted Woodward; Vince Harron<br>
            <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
            <b>Subject:</b> Re: [lldb-dev] Increasing support for other
            gdbservers<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">You mean write python code to do xml
          parsing? I've done some work lately to separate python from
          the rest of the codebase so that in theory it can be replaced
          with an interpreter for a different language. Plus there's
          already LLDB_DISABLE_PYTHON, and since the functionality that
          the xml parser is needed for is not logically tied to the
          python interpreter, it would be a shame to make them
          physically tied.<br>
          <br>
          Plus clang already uses libxml2 so it makes some sense to
          remain consistent <o:p></o:p></p>
        <div>
          <p class="MsoNormal">On Wed, Apr 1, 2015 at 8:29 AM Ted
            Woodward <<a moz-do-not-send="true"
              href="mailto:ted.woodward@codeaurora.org">ted.woodward@codeaurora.org</a>>
            wrote:<o:p></o:p></p>
          <blockquote style="border-width: medium medium medium 1pt;
            border-style: none none none solid; border-color:
            currentColor currentColor currentColor rgb(204, 204, 204);
            padding: 0in 0in 0in 6pt; border-image: none; margin-right:
            0in; margin-left: 4.8pt;">
            <div>
              <div>
                <p class="MsoNormal" style="mso-margin-top-alt: auto;
                  mso-margin-bottom-alt: auto;"><span style="color:
                    rgb(31, 73, 125); font-family:
                    "Calibri",sans-serif; font-size: 11pt;">Since
                    you mentioned Python…a thought came to mind. Python
                    includes several XML parsers. I use minidom to parse
                    the TLB and Pagetable XML files that the Hexagon
                    Simulator produces and Hexagon GDB consumes. If
                    we’re going to require a dependency, why not one
                    that we already use, and use a Python XML parser?</span><o:p></o:p></p>
                <p class="MsoNormal" style="mso-margin-top-alt: auto;
                  mso-margin-bottom-alt: auto;"><span style="color:
                    rgb(31, 73, 125); font-family:
                    "Calibri",sans-serif; font-size: 11pt;"> </span><o:p></o:p></p>
                <p class="MsoNormal" style="mso-margin-top-alt: auto;
                  mso-margin-bottom-alt: auto;"><b><span
                      style="font-family:
                      "Calibri",sans-serif; font-size: 11pt;">From:</span></b><span
                    style="font-family: "Calibri",sans-serif;
                    font-size: 11pt;"> <a moz-do-not-send="true"
                      href="mailto:lldb-dev-bounces@cs.uiuc.edu"
                      target="_blank">lldb-dev-bounces@cs.uiuc.edu</a>
                    [mailto:<a moz-do-not-send="true"
                      href="mailto:lldb-dev-bounces@cs.uiuc.edu"
                      target="_blank">lldb-dev-bounces@cs.uiuc.edu</a>]
                    <b>On Behalf Of </b>Vince Harron<br>
                    <b>Sent:</b> Wednesday, April 01, 2015 2:46 AM<br>
                    <b>To:</b> Zachary Turner</span><o:p></o:p></p>
              </div>
            </div>
            <div>
              <div>
                <p class="MsoNormal" style="mso-margin-top-alt: auto;
                  mso-margin-bottom-alt: auto;"><span
                    style="font-family: "Calibri",sans-serif;
                    font-size: 11pt;"><br>
                    <b>Cc:</b> <a moz-do-not-send="true"
                      href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
                    <b>Subject:</b> Re: [lldb-dev] Increasing support
                    for other gdbservers</span><o:p></o:p></p>
              </div>
            </div>
            <div>
              <div>
                <p class="MsoNormal" style="mso-margin-top-alt: auto;
                  mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                <div>
                  <div>
                    <p class="MsoNormal" style="mso-margin-top-alt:
                      auto; mso-margin-bottom-alt: auto;">I think I get
                      it.  Objection withdrawn.<o:p></o:p></p>
                  </div>
                </div>
              </div>
            </div>
            <div>
              <div>
                <div>
                  <p class="MsoNormal" style="mso-margin-top-alt: auto;
                    mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                  <div>
                    <p class="MsoNormal" style="mso-margin-top-alt:
                      auto; mso-margin-bottom-alt: auto;">On Wed, Apr 1,
                      2015 at 12:44 AM, Vince Harron <<a
                        moz-do-not-send="true"
                        href="mailto:vince@nethacker.com"
                        target="_blank">vince@nethacker.com</a>>
                      wrote:<o:p></o:p></p>
                    <blockquote style="border-width: medium medium
                      medium 1pt; border-style: none none none solid;
                      border-color: currentColor currentColor
                      currentColor rgb(204, 204, 204); margin: 5pt 0in
                      5pt 4.8pt; padding: 0in 0in 0in 6pt; border-image:
                      none;">
                      <div>
                        <p class="MsoNormal" style="mso-margin-top-alt:
                          auto; mso-margin-bottom-alt: auto;">This is a
                          pretty cool feature for people who want to use
                          lldb on windows against gdbserver<o:p></o:p></p>
                        <div>
                          <p class="MsoNormal"
                            style="mso-margin-top-alt: auto;
                            mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                        </div>
                      </div>
                      <div>
                        <div>
                          <div>
                            <p class="MsoNormal"
                              style="mso-margin-top-alt: auto;
                              mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                            <div>
                              <p class="MsoNormal"
                                style="mso-margin-top-alt: auto;
                                mso-margin-bottom-alt: auto;">On Tue,
                                Mar 31, 2015 at 5:57 PM, Zachary Turner
                                <<a moz-do-not-send="true"
                                  href="mailto:zturner@google.com"
                                  target="_blank">zturner@google.com</a>>
                                wrote:<o:p></o:p></p>
                              <blockquote style="border-width: medium
                                medium medium 1pt; border-style: none
                                none none solid; border-color:
                                currentColor currentColor currentColor
                                rgb(204, 204, 204); margin: 5pt 0in 5pt
                                4.8pt; padding: 0in 0in 0in 6pt;
                                border-image: none;">
                                <p class="MsoNormal"
                                  style="mso-margin-top-alt: auto;
                                  mso-margin-bottom-alt: auto;">I think
                                  uses of it would only need to be
                                  guarded if we plan to use it in
                                  generic code. So yea, if all the code
                                  that uses it goes into a file that
                                  isn't compiled on windows anyway, then
                                  the problem becomes very simple <o:p></o:p></p>
                                <div>
                                  <div>
                                    <div>
                                      <p class="MsoNormal"
                                        style="mso-margin-top-alt: auto;
                                        mso-margin-bottom-alt: auto;">On
                                        Tue, Mar 31, 2015 at 5:41 PM
                                        Jason Molenda <<a
                                          moz-do-not-send="true"
                                          href="mailto:jmolenda@apple.com"
                                          target="_blank">jmolenda@apple.com</a>>
                                        wrote:<o:p></o:p></p>
                                      <blockquote style="border-width:
                                        medium medium medium 1pt;
                                        border-style: none none none
                                        solid; border-color:
                                        currentColor currentColor
                                        currentColor rgb(204, 204, 204);
                                        margin: 5pt 0in 5pt 4.8pt;
                                        padding: 0in 0in 0in 6pt;
                                        border-image: none;">
                                        <p class="MsoNormal"
                                          style="mso-margin-top-alt:
                                          auto; mso-margin-bottom-alt:
                                          auto;">fwiw on Mac OS X we use
                                          libxml2 over in
                                          Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp. 
                                          That plugin's initialization
                                          is #ifdef __APPLE__ over in
                                          SystemInitializerFull.cpp; we
                                          don't have ifdef guard around
                                          the use of libxml2 in
                                          SymbolVendorMacOSX itself.<br>
                                          <br>
                                          <br>
                                          > On Mar 31, 2015, at 4:18
                                          PM, Vince Harron <<a
                                            moz-do-not-send="true"
                                            href="mailto:vince@nethacker.com"
                                            target="_blank">vince@nethacker.com</a>>
                                          wrote:<br>
                                          ><br>
                                          > I really don't want LLDB
                                          to embed a copy of libxml2.  I
                                          think we should build it
                                          externally and reference it
                                          from LLDB.  Systems with
                                          package managers can get this
                                          trivially.  Windows can
                                          download and build all
                                          dependencies with one script.<br>
                                          ><br>
                                          > On Mar 31, 2015 2:10 PM,
                                          "Colin Riley" <<a
                                            moz-do-not-send="true"
                                            href="mailto:colin@codeplay.com"
                                            target="_blank">colin@codeplay.com</a>>
                                          wrote:<br>
                                          > I noticed that use in
                                          cmake also. FWIW, my primary
                                          LLDB platform is Windows,
                                          which is why we were using
                                          TinyXML2 for ease of
                                          prototyping. If libxml2 works
                                          on all the targets we will use
                                          it - I do worry about the
                                          usual issues you get with
                                          windows prebuilts. So source
                                          may still be required. We'll
                                          look into it.<br>
                                          ><br>
                                          > Colin<br>
                                          ><br>
                                          > On 31/03/2015 20:45,
                                          Zachary Turner wrote:<br>
                                          >> There's already some
                                          stuff in the CMake to try to
                                          find libxml, but it's behind a
                                          Darwin specific branch in the
                                          CMake.  So I think what would
                                          need to happen is that we move
                                          this into a platform agnostic
                                          codepath, and then set a
                                          define like LLDB_HAVE_LIBXML2
                                          in the code to a value that
                                          indicates whether it is
                                          present (search clang for
                                          CLANG_HAVE_LIBXML in *.* to
                                          see how this is done).  Then,
                                          in the code, we would need to
                                          put xml code behind a check
                                          for this define.<br>
                                          >><br>
                                          >> On Tue, Mar 31, 2015
                                          at 10:02 AM Zachary Turner
                                          <<a moz-do-not-send="true"
href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>>
                                          wrote:<br>
                                          >> A good rule of thumb
                                          for anything is that "Windows
                                          doesn't have it" and that
                                          holds true for libxml2 as
                                          well.  It appears that libxml2
                                          does support Windows though (<a
                                            moz-do-not-send="true"
                                            href="http://xmlsoft.org/downloads.html"
                                            target="_blank">http://xmlsoft.org/downloads.html</a>),
                                          it just isn't something that's
                                          there by default.  It would be
                                          nice if everyone were using
                                          the same thing, could we clone
                                          this repo in our own repo and
                                          then just build it ourselves
                                          as part of the build process. 
                                          The license looks very
                                          permissive, but IANAL.<br>
                                          >><br>
                                          >> On Tue, Mar 31, 2015
                                          at 9:47 AM Greg Clayton <<a
                                            moz-do-not-send="true"
                                            href="mailto:gclayton@apple.com"
                                            target="_blank">gclayton@apple.com</a>>
                                          wrote:<br>
                                          >><br>
                                          >> > On Mar 31, 2015,
                                          at 3:35 AM, Aidan Dodds <<a
                                            moz-do-not-send="true"
                                            href="mailto:aidan@codeplay.com"
                                            target="_blank">aidan@codeplay.com</a>>
                                          wrote:<br>
                                          >> ><br>
                                          >> > On 30/03/2015
                                          18:38, Greg Clayton wrote:<br>
                                          >> > ><br>
                                          >> > > I know
                                          about the register numbering
                                          stuff and I would love to see
                                          support for the
                                          "$qXfer:features:" added to
                                          LLDB. The one thing this data
                                          doesn't contain is the
                                          register numbers for the ABI
                                          (DWARF register numbers (for
                                          debug info), compiler register
                                          numbers (for like .eh_frame)),
                                          but that info could be
                                          inferred from an ABI plugin
                                          that we could infer from the
                                          "osabi" of "GNU/Linux" in the
                                          target.xml:<br>
                                          >> ><br>
                                          >> > ><br>
                                          >> > > So please
                                          do submit patches that
                                          implement this and we will be
                                          happy to approve them.<br>
                                          >> ><br>
                                          >> > I am currently
                                          prototyping $qXfer:features
                                          support in LLDB with an aim to
                                          upstream it. It will require
                                          an XML parser, so I wanted to
                                          have a discussion about adding
                                          one to LLDB.<br>
                                          >><br>
                                          >> Most unix variants
                                          have libxml2 that is
                                          available. I am not sure on
                                          windows though. I have CC'ed
                                          Zachary to get some input on
                                          windows XML (in case LLVM
                                          doesn't already have some
                                          support for this).<br>
                                          >><br>
                                          >> > I have been
                                          using TinyXML2 in my
                                          prototype, which is open
                                          sourced under the ZLib
                                          license. Is there any policy
                                          in LLDB for handling external
                                          library dependencies?<br>
                                          >> > Would there be
                                          objections to TinyXML2 making
                                          its way into the LLDB code
                                          base as an external? Writing a
                                          new XML parser from scratch in
                                          LLDB isn't ideal.<br>
                                          >><br>
                                          >> It would be great to
                                          stick with stuff that everyone
                                          has installed and hopefully
                                          that is libxml2. Windows is
                                          the biggest question. I am
                                          also not sure if llvm or clang
                                          has any XML support, but we
                                          should first look to see if
                                          llvm has XML support and if
                                          not, then look for
                                          alternatives. We definitely do
                                          not want to write our own.<br>
                                          >> ><br>
                                          >> > I would still
                                          like to have a discussion
                                          about adding a plugin
                                          architecture to gdb-remote
                                          making it easier to handle
                                          packets outwith the LLDB based
                                          servers. The code in
                                          gdb-remote that sends and
                                          handles packets is scattered
                                          over one or two huge classes,
                                          it would be beneficial to
                                          start looking at breaking this
                                          up and modularizing it. At
                                          least for the packets which
                                          are not supported by lldb's
                                          own RSP producers.<br>
                                          >><br>
                                          >> I say just build all
                                          and any support it into
                                          GDBRemoteCommunicationClient
                                          and
                                          GDBRemoteCommunicationServer.
                                          I don't see the need to break
                                          it up.<br>
                                          >><br>
                                          >> Greg Clayton<br>
                                          >><br>
                                          >><br>
                                          >>
                                          _______________________________________________<br>
                                          >> lldb-dev mailing list<br>
                                          >><br>
                                          >> <a
                                            moz-do-not-send="true"
                                            href="mailto:lldb-dev@cs.uiuc.edu"
                                            target="_blank">lldb-dev@cs.uiuc.edu</a><br>
                                          >> <a
                                            moz-do-not-send="true"
                                            href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev"
                                            target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
                                          ><br>
                                          ><br>
                                          >
                                          _______________________________________________<br>
                                          > lldb-dev mailing list<br>
                                          > <a
                                            moz-do-not-send="true"
                                            href="mailto:lldb-dev@cs.uiuc.edu"
                                            target="_blank">lldb-dev@cs.uiuc.edu</a><br>
                                          > <a
                                            moz-do-not-send="true"
                                            href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev"
                                            target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
                                          ><br>
                                          >
                                          _______________________________________________<br>
                                          > lldb-dev mailing list<br>
                                          > <a
                                            moz-do-not-send="true"
                                            href="mailto:lldb-dev@cs.uiuc.edu"
                                            target="_blank">lldb-dev@cs.uiuc.edu</a><br>
                                          > <a
                                            moz-do-not-send="true"
                                            href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev"
                                            target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
                                          <br>
                                          <br>
_______________________________________________<br>
                                          lldb-dev mailing list<br>
                                          <a moz-do-not-send="true"
                                            href="mailto:lldb-dev@cs.uiuc.edu"
                                            target="_blank">lldb-dev@cs.uiuc.edu</a><br>
                                          <a moz-do-not-send="true"
                                            href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev"
                                            target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><o:p></o:p></p>
                                      </blockquote>
                                    </div>
                                  </div>
                                </div>
                              </blockquote>
                            </div>
                            <p class="MsoNormal"
                              style="mso-margin-top-alt: auto;
                              mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                          </div>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                  <p class="MsoNormal" style="mso-margin-top-alt: auto;
                    mso-margin-bottom-alt: auto;"> <o:p></o:p></p>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
lldb-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>