aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/test/main.c8
-rwxr-xr-xutils/test/run-until-faulted.py19
2 files changed, 13 insertions, 14 deletions
diff --git a/utils/test/main.c b/utils/test/main.c
index 9caf9d8c9..c0fe2f25a 100644
--- a/utils/test/main.c
+++ b/utils/test/main.c
@@ -1,8 +1,14 @@
#include <stdio.h>
+#include <stdlib.h>
int main(int argc, const char* argv[])
{
int *null_ptr = 0;
printf("Hello, fault!\n");
- printf("Now segfault %d\n", *null_ptr);
+ u_int32_t val = (arc4random() & 0x0f);
+ printf("val=%u\n", val);
+ if (val == 0x07) // Lucky 7 :-)
+ printf("Now segfault %d\n", *null_ptr);
+ else
+ printf("Better luck next time!\n");
}
diff --git a/utils/test/run-until-faulted.py b/utils/test/run-until-faulted.py
index f338d7bd9..93982037a 100755
--- a/utils/test/run-until-faulted.py
+++ b/utils/test/run-until-faulted.py
@@ -33,31 +33,25 @@ def do_lldb_launch_loop(lldb_command, exe, exe_options):
prompt = "\(lldb\) "
lldb = pexpect.spawn(lldb_command)
# Turn on logging for what lldb sends back.
- #lldb.logfile_read = sys.stdout
+ lldb.logfile_read = sys.stdout
lldb.expect(prompt)
# Now issue the file command.
- print "sending file command...."
+ print "sending 'file %s' command..." % exe
lldb.sendline('file %s' % exe)
lldb.expect(prompt)
- #print "lldb.buffer:--->", lldb.buffer, "<---"
- #print "lldb.before:--->", lldb.before, "<---"
- #print "lldb.after:--->", lldb.buffer, "<----"
# Loop until it faults....
count = 0
#while True:
# count = count + 1
- for i in range(10):
+ for i in range(100):
count = i
- print "sending process launch -- %s (iteration: %d)" % (exe_options, count)
+ print "sending 'process launch -- %s' command... (iteration: %d)" % (exe_options, count)
lldb.sendline('process launch -- %s' % exe_options)
index = lldb.expect(['Process .* exited with status',
'Process .* stopped',
pexpect.TIMEOUT])
- #print "lldb.buffer:--->", lldb.buffer, "<---"
- #print "lldb.before:--->", lldb.before, "<----"
- #print "lldb.after:--->", lldb.buffer, "<----"
if index == 0:
# We'll try again later.
time.sleep(3)
@@ -78,10 +72,9 @@ def main():
sys.path.append(os.path.join(scriptPath, os.pardir, os.pardir, 'test', 'pexpect-2.4'))
parser = OptionParser(usage="""\
+%prog [options]
Run a program via lldb until it fails.
-The lldb executable is located via your PATH env variable, if not specified.
-
-Usage: %prog [options]
+The lldb executable is located via your PATH env variable, if not specified.\
""")
parser.add_option('-l', '--lldb-command',
type='string', action='store', metavar='LLDB_COMMAND',