[Lldb-commits] [lldb] [lldb] [scripting bridge] 167388 chore: add api to return arch name for target (PR #168273)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Nov 17 11:55:59 PST 2025
================
@@ -105,6 +105,20 @@ def test_resolve_file_address(self):
self.assertIsNotNone(data_section2)
self.assertEqual(data_section.name, data_section2.name)
+ def test_get_arch_name(self):
+ d = {"EXE": "b.out"}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ target = self.create_simple_target("b.out")
+
+ arch_name = target.arch_name
+ self.assertNotEqual(len(arch_name), 0, "Got an arch name string")
----------------
n2h9 wrote:
In that case `build` also does not take architecture into account, tried both `arch` and `architecture` :cry: .
```
expected_arch = "aarch64"
d = {
"EXE": "b.out",
"arch": expected_arch,
}
self.build(dictionary=d)
....
print(">>>>")
print(f"target.arch_name = {target.arch_name}")
print("<<<<")
```
<details>
<summary>test command output with traces</summary>
```sh
./build/bin/lldb-dotest \
-v -t -p TestTargetAPI.py \
-f test_get_arch_name_dwarf \
-f test_get_arch_name_dwo \
-f test_get_arch_name_dsym \
--arch aarch64 \
lldb/test/API/python_api/target
/usr/bin/python3 /home/ubuntu/code/llvm-project/lldb/test/API/dotest.py --arch x86_64 -u CXXFLAGS -u CFLAGS --build-dir /home/ubuntu/code/llvm-project/build/lldb-test-build.noindex --executable /home/ubuntu/code/llvm-project/build/./bin/lldb --compiler /home/ubuntu/code/llvm-project/build/./bin/clang --dsymutil /home/ubuntu/code/llvm-project/build/./bin/dsymutil --make /usr/bin/gmake --lldb-libs-dir /home/ubuntu/code/llvm-project/build/./lib --llvm-tools-dir /home/ubuntu/code/llvm-project/build/./bin --lldb-obj-root /home/ubuntu/code/llvm-project/build/tools/lldb --cmake-build-type Debug -v -t -p TestTargetAPI.py -f test_get_arch_name_dwarf -f test_get_arch_name_dwo -f test_get_arch_name_dsym --arch aarch64 lldb/test/API/python_api/target
lldb version 22.0.0git (https://github.com/n2h9/fork-llvm-project revision 0dfb712313fa7689e936e572fde6ac99197806df)
clang revision 0dfb712313fa7689e936e572fde6ac99197806df
llvm revision 0dfb712313fa7689e936e572fde6ac99197806df
libc++ tests will not be run because: API tests require a locally built libc++.
msvcstl tests will not be run because: Don't know how to build with MSVC's STL on linux
objc tests will be skipped because of unsupported platform
Skipping the following test categories: ['libc++', 'msvcstl', 'dsym', 'pdb', 'gmodules', 'debugserver', 'objc']
adding filter spec TargetAPITestCase.test_get_arch_name_dwarf to module <module 'TestTargetAPI' from '/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/TestTargetAPI.py'>
adding filter spec TargetAPITestCase.test_get_arch_name_dwo to module <module 'TestTargetAPI' from '/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/TestTargetAPI.py'>
adding filter spec TargetAPITestCase.test_get_arch_name_dsym to module <module 'TestTargetAPI' from '/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/TestTargetAPI.py'>
compiler=/home/ubuntu/code/llvm-project/build/bin/clang
Configuration: arch=aarch64 compiler=/home/ubuntu/code/llvm-project/build/bin/clang
----------------------------------------------------------------------
Collected 3 tests
Change dir to: /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target
1: test_get_arch_name_dwarf (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dwarf) ... runCmd: settings clear --all
output:
runCmd: settings set symbols.enable-external-lookup false
output:
runCmd: settings set target.inherit-tcc true
output:
runCmd: settings set target.disable-aslr false
output:
runCmd: settings set target.detach-on-error false
output:
runCmd: settings set target.auto-apply-fixits false
output:
runCmd: settings set plugin.process.gdb-remote.packet-timeout 60
output:
runCmd: settings set symbols.clang-modules-cache-path "/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/module-cache-lldb"
output:
runCmd: settings set use-color false
output:
runCmd: settings set show-statusline false
output:
/usr/bin/gmake VPATH=/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -C /home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwarf -I /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -f /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/Makefile MAKE_DSYM=NO all ARCH=aarch64 CC=/home/ubuntu/code/llvm-project/build/bin/clang CC_TYPE=clang CXX=/home/ubuntu/code/llvm-project/build/bin/clang++ LLVM_AR=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar AR=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar OBJCOPY=/home/ubuntu/code/llvm-project/build/./bin/llvm-objcopy STRIP=/home/ubuntu/code/llvm-project/build/./bin/llvm-strip ARCHIVER=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar DWP=/home/ubuntu/code/llvm-project/build/./bin/llvm-dwp CLANG_MODULE_CACHE_DIR=/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/module-cache-clang LLDB_OBJ_ROOT=/home/ubuntu/code/llvm-project/build/tools/lldb EXE=b.out arch=aarch64 OS=Linux HOST_OS=Linux
gmake: Entering directory '/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwarf'
/home/ubuntu/code/llvm-project/build/bin/clang -g -O0 -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/../../../../..//include -I/home/ubuntu/code/llvm-project/build/tools/lldb/include -I/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -include /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/test_common.h -fno-limit-debug-info -D_DEFAULT_SOURCE -MT main.o -MD -MP -MF main.d -c -o main.o /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/main.c
/home/ubuntu/code/llvm-project/build/bin/clang main.o -g -O0 -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/../../../../..//include -I/home/ubuntu/code/llvm-project/build/tools/lldb/include -I/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -include /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/test_common.h -fno-limit-debug-info -D_DEFAULT_SOURCE --driver-mode=g++ -o "b.out"
gmake: Leaving directory '/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwarf'
>>>>
target.arch_name = x86_64
<<<<
ok
PASS: LLDB (/home/ubuntu/code/llvm-project/build/bin/clang-aarch64) :: test_get_arch_name_dwarf (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dwarf)
2: test_get_arch_name_dwo (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dwo) ... runCmd: settings clear --all
output:
runCmd: settings set symbols.enable-external-lookup false
output:
runCmd: settings set target.inherit-tcc true
output:
runCmd: settings set target.disable-aslr false
output:
runCmd: settings set target.detach-on-error false
output:
runCmd: settings set target.auto-apply-fixits false
output:
runCmd: settings set plugin.process.gdb-remote.packet-timeout 60
output:
runCmd: settings set symbols.clang-modules-cache-path "/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/module-cache-lldb"
output:
runCmd: settings set use-color false
output:
runCmd: settings set show-statusline false
output:
/usr/bin/gmake VPATH=/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -C /home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwo -I /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -f /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/Makefile MAKE_DSYM=NO MAKE_DWO=YES all ARCH=aarch64 CC=/home/ubuntu/code/llvm-project/build/bin/clang CC_TYPE=clang CXX=/home/ubuntu/code/llvm-project/build/bin/clang++ LLVM_AR=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar AR=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar OBJCOPY=/home/ubuntu/code/llvm-project/build/./bin/llvm-objcopy STRIP=/home/ubuntu/code/llvm-project/build/./bin/llvm-strip ARCHIVER=/home/ubuntu/code/llvm-project/build/./bin/llvm-ar DWP=/home/ubuntu/code/llvm-project/build/./bin/llvm-dwp CLANG_MODULE_CACHE_DIR=/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/module-cache-clang LLDB_OBJ_ROOT=/home/ubuntu/code/llvm-project/build/tools/lldb EXE=b.out arch=aarch64 OS=Linux HOST_OS=Linux
gmake: Entering directory '/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwo'
/home/ubuntu/code/llvm-project/build/bin/clang -g -O0 -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/../../../../..//include -I/home/ubuntu/code/llvm-project/build/tools/lldb/include -I/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -include /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/test_common.h -fno-limit-debug-info -gsplit-dwarf -D_DEFAULT_SOURCE -MT main.o -MD -MP -MF main.d -c -o main.o /home/ubuntu/code/llvm-project/lldb/test/API/python_api/target/main.c
/home/ubuntu/code/llvm-project/build/bin/clang main.o -g -O0 -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/../../../../..//include -I/home/ubuntu/code/llvm-project/build/tools/lldb/include -I/home/ubuntu/code/llvm-project/lldb/test/API/python_api/target -I/home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make -include /home/ubuntu/code/llvm-project/lldb/packages/Python/lldbsuite/test/make/test_common.h -fno-limit-debug-info -gsplit-dwarf -D_DEFAULT_SOURCE --driver-mode=g++ -o "b.out"
gmake: Leaving directory '/home/ubuntu/code/llvm-project/build/lldb-test-build.noindex/python_api/target/TestTargetAPI.test_get_arch_name_dwo'
>>>>
target.arch_name = x86_64
<<<<
ok
PASS: LLDB (/home/ubuntu/code/llvm-project/build/bin/clang-aarch64) :: test_get_arch_name_dwo (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dwo)
3: test_get_arch_name_dsym (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dsym) ... skipped 'test case does not fall in any category of interest for this run'
UNSUPPORTED: LLDB (/home/ubuntu/code/llvm-project/build/bin/clang-aarch64) :: test_get_arch_name_dsym (TestTargetAPI.TargetAPITestCase.test_get_arch_name_dsym) (test case does not fall in any category of interest for this run)
Restore dir to: /home/ubuntu/code/llvm-project
----------------------------------------------------------------------
Ran 3 tests in 0.659s
OK (skipped=1)
Session logs for test failures/errors/unexpected successes can be found in the test build directory
```
</details>
https://github.com/llvm/llvm-project/pull/168273
More information about the lldb-commits
mailing list