I’m trying to get the lldb tests running using lldb built with Hexagon support. Some tests are running correctly, but others are failing/skipped etc.
First, I’d like to get it to skip tests that shouldn’t be run. For example, I see output that looks like this:
Configuration: arch=x86_64 compiler=/prj/dsp/qdsp6/release/internal/branch-8.0/linux64/latest/Tools/bin/hexagon-clang
Or
Config=x86_64-/prj/dsp/qdsp6/release/internal/branch-8.0/linux64/latest/Tools/bin/hexagon-clang
Those are clearly incorrect.
My dotest line is:
python dotest.py -C /prj/dsp/qdsp6/release/internal/branch-8.0/linux64/latest/Tools/bin/hexagon-clang --executable /local/mnt/workspace/ted/8.0/build/bin/lldb
How does the –A flag affect the Configuration/Config outputs above?
Ted
If it should never run with x86_64 on Hexagon, then don’t bother using command lines, just change dotest.py so that when the target is hexagon, the default archs doesn’t include x86_64
What is the sequence of lldb commands you use to innitiate a hexagon
debug session normally? Do you need to set a custom platform (platform
select XXX)? If so, then you need to look into --platform-name (and
possibly --platform-url, --platform-working-dir) parameter, and
possibly add some support there?
A Hexagon debug session connects to the Hexagon simulator. lldb launches hexagon-sim in the same way it launches lldb-server or debugserver.
When a Hexagon target is loaded, lldb automatically selects the hexagon platform.
So, no special settings - target create, set a breakpoint, run.
Where are the default archs defined? I’m not seeing it, looking through testcases/dotest.py.
Apparently I’m dumb, you actually should specify archs. For example, on Windows we use --arch=i686
If you don’t specify a value for --arch, it uses the result of platform.machine()
. If you do, it uses the list that you specify. So basically if you say --arch=i386 or something like, it will use that instead of x86_64.