Getting lldb tests working on Hexagon

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



Those are clearly incorrect.

My dotest line is:

python -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?


If it should never run with x86_64 on Hexagon, then don’t bother using command lines, just change 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/

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.