Version 0.3.28

* Fixed memory corruption when using execve() in a traced program
                                    (closes: Bug#160341, Bug#165626)
diff --git a/proc.c b/proc.c
index 294340d..8a05e2b 100644
--- a/proc.c
+++ b/proc.c
@@ -27,36 +27,8 @@
 	proc->breakpoints_enabled = -1;
 	proc->callstack_depth = 0;
 	proc->breakpoint_being_enabled = NULL;
+	breakpoints_init(proc);
 	proc->next = NULL;
-	if (opt_L && filename) {
-		proc->list_of_symbols = read_elf(filename);
-		if (opt_e) {
-			struct library_symbol ** tmp1 = &(proc->list_of_symbols);
-			while(*tmp1) {
-				struct opt_e_t * tmp2 = opt_e;
-				int keep = !opt_e_enable;
-
-				while(tmp2) {
-					if (!strcmp((*tmp1)->name, tmp2->name)) {
-						keep = opt_e_enable;
-					}
-					tmp2 = tmp2->next;
-				}
-				if (!keep) {
-					*tmp1 = (*tmp1)->next;
-				} else {
-					tmp1 = &((*tmp1)->next);
-				}
-			}
-		}
-	} else {
-		proc->list_of_symbols = NULL;
-	}
-	sym = proc->list_of_symbols;
-	while (sym) {
-		insert_breakpoint(proc, sym->enter_addr); /* proc->pid==0 delays enabling. */
-		sym = sym->next;
-	}
 
 	proc->next = list_of_processes;
 	list_of_processes = proc;