- saved_debug = debug; debug = 1;
- debug_printf("%s: debug %d pid %ld ruid %ld euid %ld: start at %s",
- pname, saved_debug, (long)getpid(),
- (long)getuid(), (long)geteuid(),
- ctime(&curtime));
- debug = saved_debug;
+ debug_setup_1();
+
+ /*
+ * Create the new file.
+ */
+ for(i = 0;
+ (dbfilename = get_debug_name(curtime, i)) != NULL
+ && (s = newvstralloc(s, dbgdir, dbfilename, NULL)) != NULL
+ && (fd = open(s, O_WRONLY|O_CREAT|O_EXCL|O_APPEND, 0600)) < 0;
+ i++, free(dbfilename)) {}
+ if(dbfilename == NULL) {
+ error("cannot create %s debug file", get_pname());
+ }
+ amfree(dbfilename);
+
+ /*
+ * Finish setup.
+ *
+ * Note: we release control of the string 's' points to.
+ */
+ debug_setup_2(s, fd, "start");
+}
+
+void debug_reopen(dbfilename, notation)
+ char *dbfilename;
+ char *notation;
+{
+ char *s = NULL;
+ int fd = -1;
+
+ if (dbfilename == NULL) {
+ return;
+ }
+
+ /*
+ * Do initial setup.
+ */
+ debug_setup_1();
+
+ /*
+ * Reopen the file.
+ */
+ if (*dbfilename == '/') {
+ s = stralloc(dbfilename);
+ } else {
+ s = newvstralloc(s, dbgdir, dbfilename, NULL);
+ }
+ if ((fd = open(s, O_RDWR|O_APPEND, 0600)) < 0) {
+ error("cannot reopen %s debug file %s", get_pname(), dbfilename);
+ }
+
+ /*
+ * Finish setup.
+ *
+ * Note: we release control of the string 's' points to.
+ */
+ debug_setup_2(s, fd, notation);