Hi all,

The question of how to tackle filename/path issues in a cross-platform
environment arose as a result of http://reviews.llvm.org/D12115, and we would
like to continue that discussion here.  I'll start with excerpts from comments
in that review to give you some background:

zturner:
    [...] can we instead use llvm::sys::fs::root_name to check whether the path
    contains a drive letter?

dawn:
    Sadly no, because root_name only parses c:\ correctly if the platform is
    Windows. Our IDE is hosted on Windows but talks to lldb running on OSX. I've
    had this path problem with the DWARF reader and FileSpec - lldb has a core
    assumption that you only want to support Windows paths if you run on 
Windows.
    At least with FileSpec you can pass a PathSyntax, but you have to choose 
either
    Windows or Posix, not both. We want to support both Posix and Windows style
    paths. I've not come up with a clean patch for this problem so none have 
been
    submitted.

zturner:
    Are you saying that there is a situation where you are given a path, and you
    have no idea whether it is a posix path or a windows path?

dawn:
    Yes. For example, in lldb on OSX, we can be debugging an app that was built 
on
    OSX, or an app that was built on Windows targeting OSX. More likely, we 
would
    be debugging an app that was built on Windows but links with libraries that
    were built on OSX.

    I've thought of various ways to fit this into lldb...  One idea was to add:
        settings set target.pathsyntax [posix|windows|any|native] 
#default=native
    and a FileSpec::ePathSyntaxAny enum which would be set if the user chose 
"any".
    But that doesn't solve the problem for llvm, whose path handling appears to 
be
    controlled by the define LLVM_ON_WIN32.

Thoughts/ideas?

Thanks in advance,
-Dawn
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to