|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
diff -BurpN ltrace-x86/ltrace.h ltrace-0.5/ltrace.h
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
--- ltrace-x86/ltrace.h 2006-12-06 11:34:44.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+++ ltrace-0.5/ltrace.h 2006-12-06 14:42:52.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
@@ -175,6 +173,7 @@ extern void reinitialize_breakpoints(str
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
extern struct process *open_program(char *filename, pid_t pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
extern void open_pid(pid_t pid, int verbose);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+extern void open_forked_pid(pid_t pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
extern void show_summary(void);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
/* Arch-dependent stuff: */
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
diff -BurpN ltrace-x86/proc.c ltrace-0.5/proc.c
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
--- ltrace-x86/proc.c 2006-12-06 11:34:45.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+++ ltrace-0.5/proc.c 2006-12-06 14:42:13.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
@@ -61,3 +59,11 @@ void open_pid(pid_t pid, int options)
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
proc->pid = pid;
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
proc->breakpoints_enabled = -1;
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+void open_forked_pid(pid_t pid)
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ char *filename = pid2name(pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ struct process *proc = open_program(filename, 0);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ proc->pid = pid;
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ proc->breakpoints_enabled = -1;
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
diff -BurpN ltrace-x86/testsuite/lib/ltrace.exp ltrace-0.5/testsuite/lib/ltrace.exp
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
--- ltrace-x86/testsuite/lib/ltrace.exp 2006-12-06 11:34:43.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+++ ltrace-0.5/testsuite/lib/ltrace.exp 2006-12-06 15:31:42.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
@@ -260,7 +260,7 @@ proc ltrace_saveoutput { args } {
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
proc ltrace_verify_output { file_to_search pattern {instance_no 0}} {
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
# compute the number of PATTERN in FILE_TO_SEARCH by grep and wc.
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
- catch "exec sh -c {grep $pattern $file_to_search | wc -l ;exit}" output
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ catch "exec sh -c {egrep $pattern $file_to_search | wc -l ;exit}" output
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
verbose "output = $output"
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
if { $instance_no == 0 } then {
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
diff -BurpN ltrace-x86/testsuite/ltrace.minor/trace-fork.exp ltrace-0.5/testsuite/ltrace.minor/trace-fork.exp
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
--- ltrace-x86/testsuite/ltrace.minor/trace-fork.exp 2006-12-06 11:34:43.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+++ ltrace-0.5/testsuite/ltrace.minor/trace-fork.exp 2006-12-06 15:29:40.000000000 -0500
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
@@ -35,6 +35,19 @@ if [regexp {ELF from incompatible archit
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
ltrace_saveoutput "${exec_output}" ${srcdir}/${subdir}/${testfile}.ltrace
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
-set pattern "fork"
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+if [ regexp {Cannot attach} $exec_output ] {
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ fail "Couldn't attach to forked process!"
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ return
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+set pattern "^fork"
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+set pattern {'^\[pid [0-9]*\][ \t]*(printf|puts)'}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 2
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+set pattern {'^\[pid [0-9]*\][ \t]*wait'}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+set pattern {'^\[pid [0-9]*\][ \t]*sleep'}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
diff -BurpN ltrace-x86/wait_for_something.c ltrace-0.5/wait_for_something.c
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
--- ltrace-x86/wait_for_something.c 2006-12-06 21:43:33.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+++ ltrace-0.5/wait_for_something.c 2006-12-06 21:45:06.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
@@ -103,7 +103,8 @@
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
event.e_un.signum = WSTOPSIG(status);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
child_pid = (pid_t) get_child_pid(event.proc->pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
if (child_pid){
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
- open_pid(child_pid,0);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ debug (3, "fork: get_child_pid gave us %d", child_pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
+ open_forked_pid(child_pid);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
}
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
enable_all_breakpoints(event.proc);
|
|
![](https://seccdn.libravatar.org/avatar/31ea1396ba7da6f6b28d3858e6d29d181a6344900afb867475d5288d7ae03c37?s=16&d=retro) |
768acb9 |
continue_after_signal(event.proc->pid, event.e_un.signum);
|