Mail Archives: djgpp-workers/2002/12/22/06:50:37
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 -