junior-jl wrote:

> You can use `lldb/test/Shell/Commands/command-thread-select.test` as an 
> example to write your own test.

Using this file as a template, I wrote `command-process-launch-user-entry.test` 
as shown below:

```
# RUN: %clang_host -g %S/Inputs/main.c -o %t
# RUN: %lldb %t -s %s -o exit | FileCheck %s

process launch -m
# CHECK-LABEL: process launch -m
# CHECK: Process {{.*}} stopped
# CHECK: stop reason = one-shot breakpoint 1
# CHECK:   frame #0: {{.*}}`main at main.c
```

But I wanted to add the check line `# CHECK: Process {{.*}} launched: '{{.*}}' 
{{.*}}`, but this fails because the following is happening:

1. When the command is executed from the `(lldb)` prompt, it correctly shows 
that the process is launched then stopped.

```
$ ./bin/lldb ~/main.out
(lldb) target create "/home/jose/main.out"
Current executable set to '/home/jose/main.out' (x86_64).
(lldb) process launch -m
Process 63632 launched: '/home/jose/main.out' (x86_64)
Process 63632 stopped
* thread #1, name = 'main.out', stop reason = one-shot breakpoint 1
    frame #0: 0x0000555555555140 main.out`main at main.c:2
   1    int foo() { return 0; }
-> 2    int main() { return foo(); }
   3    
(lldb) 
```

2. When I run like shown below, the `Process launched` message is shown after 
the stop.

```
$ ./bin/lldb ~/main.out -o 'process launch -m'
(lldb) target create "/home/jose/main.out"
Current executable set to '/home/jose/main.out' (x86_64).
(lldb) process launch -m
Process 63846 stopped
* thread #1, name = 'main.out', stop reason = one-shot breakpoint 1
    frame #0: 0x0000555555555140 main.out`main at main.c:2
   1    int foo() { return 0; }
-> 2    int main() { return foo(); }
   3
Process 63846 launched: '/home/jose/main.out' (x86_64)
(lldb) 
```

Is this behaviour expected?

https://github.com/llvm/llvm-project/pull/67019
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to