delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/12/22/06:50:37

From: Martin Str|mberg <ams AT ludd DOT luth DOT se>
Message-Id: <200212221147.gBMBlro01553@brother.ludd.luth.se>
Subject: Symify calling bfdsymify
To: djgpp-workers AT delorie DOT com (DJGPP-WORKERS)
Date: Sun, 22 Dec 2002 12:47:53 +0100 (MET)
X-Mailer: ELM [version 2.5 PL2]
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

Here's a patch to make symify call bfdsymify:

Index: djgpp/src/debug/common/symify.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/debug/common/symify.c,v
retrieving revision 1.5
diff -p -u -r1.5 symify.c
--- djgpp/src/debug/common/symify.c     21 Mar 2001 17:07:17 -0000      1.5
+++ djgpp/src/debug/common/symify.c     22 Dec 2002 11:46:13 -0000
@@ -4,6 +4,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
+#include <process.h>
 #include <pc.h>
 #include <debug/syms.h>
 #include <debug/tss.h>
@@ -20,6 +22,7 @@ int main(int argc, char **argv)
   int r, c;
   short *sc;
   char *buf = NULL;
+  char **sub_argv;
   size_t bufsize = 0;
   int i, lineno;
   unsigned v;
@@ -34,6 +37,35 @@ int main(int argc, char **argv)
     fprintf(stderr, "This program adds debug information to DJGPP program call 
frame tracebacks\n");
     return 1;
   }
+
+  /* Try to run bfdsymify. */
+  sub_argv = malloc(sizeof(char *)*(argc+1));
+  if( sub_argv )
+  {
+    sub_argv[0] = "bfdsymify";
+    for(i = 1; i < argc; i++)
+    {
+      sub_argv[i] = argv[i];
+    }
+    sub_argv[argc] = NULL;
+    r = spawnvp(P_WAIT, "bfdsymify", sub_argv);
+    if (! (r & 0xffffff00) )
+    {
+#if 0
+      fprintf(stderr, "bfdsymify ok, spawnl returned 0x%x.\n", r);
+#endif
+      free(sub_argv);
+      return r;
+    }
+#if 0
+    else
+    {
+      fprintf(stderr, "bfdsymify not found or error, spawnl returned 0x%x, errn
o = %d.\n", r, errno);
+    }
+#endif
+    free(sub_argv);
+  }
+
   while (argv[1][0] == '-')
   {
     if ((strcmp(argv[1], "-o") == 0) && (argc > 3))


Right,

						MartinS

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019