Commit Diff


commit - 95f5b525d2eecb5ea90a056cff47f3bf946540aa
commit + d925d643cba25a7a3b7f530a42fb8dbc4e2f176e
blob - 94a38bbc717dc46100e76d9b325a3cc9516d8006
blob + a0021a0a4c55ecc309aa060d12bd163b5b31e9a1
--- src/cmd/core.c
+++ src/cmd/core.c
@@ -43,6 +43,20 @@ coredir(void)
 	return dir;
 }
 
+int
+timecmp(const void *va, const void *vb)
+{
+	Dir *a, *b;
+
+	a = (Dir*)va;
+	b = (Dir*)vb;
+	if(a->mtime < b->mtime)
+		return 1;
+	if(a->mtime > b->mtime)
+		return -1;
+	return 0;
+}
+
 void
 coreall(char *name)
 {
@@ -62,6 +76,7 @@ coreall(char *name)
 		return;
 	}
 	n = dirreadall(fd, &d);
+	qsort(d, n, sizeof(d[0]), timecmp);
 	for(i=0; i<n; i++){
 		p = smprint("%s/%s", name, d[i].name);
 		if(p == nil)
@@ -97,12 +112,6 @@ corefile(char *name, int explicit)
 			fprint(2, "%s: not a core file\n", name);
 		return;
 	}
-	print("acid %s # %s %s\n", name, t, hdr->cmd);
-
-	/*
-	 * To do: look at command line to determine binary.
-	 * Print stack.
-	 */
+	print("stack %s\n\t# %s\n\t# %s\n", name, t, hdr->cmdline);
 	uncrackhdr(hdr);
 }
-