[Lldb-commits] [lldb] d00eaa0 - [lldb] Adjust TestExec code to be closer to real world code

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 27 05:57:35 PDT 2020


Author: Raphael Isemann
Date: 2020-04-27T14:57:12+02:00
New Revision: d00eaa082b7cd6ada106ed01751abce65abd6dd8

URL: https://github.com/llvm/llvm-project/commit/d00eaa082b7cd6ada106ed01751abce65abd6dd8
DIFF: https://github.com/llvm/llvm-project/commit/d00eaa082b7cd6ada106ed01751abce65abd6dd8.diff

LOG: [lldb] Adjust TestExec code to be closer to real world code

Summary:
For some reason the TestExec test on the macOS bots randomly fails with this error:
```
output: * thread #2, stop reason = EXC_BAD_ACCESS (code=1, address=0x108e66000)
  * frame #0: 0x0000000108e66000
[...]
  File "/Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/lldb/test/API/functionalities/exec/TestExec.py", line 25, in test_hitting_exec
    self.do_test(False)
  File "/Users/buildslave/jenkins/workspace/lldb-cmake/llvm-project/lldb/test/API/functionalities/exec/TestExec.py", line 113, in do_test
    "Stopped at breakpoint in exec'ed process.")
AssertionError: False is not True : Stopped at breakpoint in exec'ed process.
Config=x86_64-/Users/buildslave/jenkins/workspace/lldb-cmake/lldb-build/bin/clang-11
```

I don't know why the test program is failing and I couldn't reproduce this problem on my own.
This patch is a stab in the dark that just tries to make the test code more similar to code which
we would expect in a user program to make whatever part of macOS happy that is currently
not liking our code.

The actual changes are:
* We pass in argv[0] that is describing otherprog path instead of the current argv[0].
* We pass in a non-null envp (which anyway doesn't seem to be allowed on macOS man page).

Reviewers: labath, JDevlieghere

Reviewed By: labath

Subscribers: abidh, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D75241

Added: 
    

Modified: 
    lldb/test/API/functionalities/exec/main.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/functionalities/exec/main.cpp b/lldb/test/API/functionalities/exec/main.cpp
index bec470fd13ef..51c67d5f232d 100644
--- a/lldb/test/API/functionalities/exec/main.cpp
+++ b/lldb/test/API/functionalities/exec/main.cpp
@@ -12,7 +12,8 @@ int main(int argc, char const **argv) {
   std::string directory_name(::dirname(buf));
 
   std::string other_program = directory_name + "/secondprog";
-  execve(other_program.c_str(), const_cast<char *const *>(argv), nullptr);
+  argv[0] = other_program.c_str();
+  execv(argv[0], const_cast<char *const *>(argv));
   perror("execve");
   abort();
 }


        


More information about the lldb-commits mailing list