You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BreakpointSites know they're backed by hardware based on whether the "hardware index" is set. This does not appear the to be done for arm/aarch64, which caused the hardware breakpoints to appear as software breakpoints.
2: name = 'hw_break_function'
2.1:
module = /home/buildslave/buildslave/lldb-cmake-aarch64/build/lldb-test-build.noindex/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.test_hw_break_set_disable_multi_thread_linux/a.out
compile unit = main.cpp
function = hw_break_function(unsigned int)
location = /home/buildslave/buildslave/lldb-cmake-aarch64/llvm-project/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/main.cpp:21:57
address = 0x0000000000400d7c
resolved = true
hardware = false
hit count = 2'
The text was updated successfully, but these errors were encountered:
I just came across this, I can look into it further if you can remember how you were placing the breakpoints.
At least in some places, we're hardware if we have an index and it's been resolved.
This is what I see with a breakpoint by name at least:
(lldb) breakpoint set -n main --hardware
Breakpoint 1: where = test.o`main + 8 at test.c:11, address = 0x000000000000077c
(lldb) breakpoint list -v
Current breakpoints:
1: name = 'main'
1.1:
module = /tmp/test.o
compile unit = test.c
function = main
location = /tmp/test.c:11
address = test.o[0x000000000000077c]
resolved = false
hardware = false
hit count = 0
(lldb) run
Process 1167457 launched: '/tmp/test.o' (aarch64)
Process 1167457 stopped
thread #1, name = 'test.o', stop reason = breakpoint 1.1
frame #0: 0x0000aaaaaaaaa77c test.o`main at test.c:11
8 Foo f attribute((aligned (64))) = { .a=1, .b=2};
9
10 int main() {
-> 11 printf("---------------------------\n");
12 printf(" f.a: %p f.b: %p\n", &f.a, &f.b);
13 printf("---------------------------\n");
14
(lldb) breakpoint list -v
Current breakpoints:
1: name = 'main'
1.1:
module = /tmp/test.o
compile unit = test.c
function = main
location = /tmp/test.c:11
address = 0x0000aaaaaaaaa77c
resolved = true
hardware = true
hit count = 1
(lldb)
What did you do to get the resolved but not hardware state?
Extended Description
BreakpointSites know they're backed by hardware based on whether the "hardware index" is set. This does not appear the to be done for arm/aarch64, which caused the hardware breakpoints to appear as software breakpoints.
2: name = 'hw_break_function'
2.1:
module = /home/buildslave/buildslave/lldb-cmake-aarch64/build/lldb-test-build.noindex/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.test_hw_break_set_disable_multi_thread_linux/a.out
compile unit = main.cpp
function = hw_break_function(unsigned int)
location = /home/buildslave/buildslave/lldb-cmake-aarch64/llvm-project/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/main.cpp:21:57
address = 0x0000000000400d7c
resolved = true
hardware = false
hit count = 2'
The text was updated successfully, but these errors were encountered: