Hi Ian,
Here's the patch to fix three issues: ski was looking inside a
private data structure for ncurses, so when libbfd was available, it
FTBFS.
Also, there was a memory leak (about 240 bytes for each line
disassembled) and an incompatibility with the latest libcurses (An
explicit \r blanks the line nowadays).
Index: ski-1.3.2/src/linux/dwarf-linux.c
===================================================================
--- ski-1.3.2.orig/src/linux/dwarf-linux.c 2008-09-03 07:39:32.506572282
+1000
+++ ski-1.3.2/src/linux/dwarf-linux.c 2008-09-03 07:40:51.558864149 +1000
@@ -155,7 +155,7 @@
first.function = function;
first.line = line;
first.num_lines = 1;
- first.limit = sect->_cooked_size;
+ first.limit = bfd_get_section_limit(bfd, sect);
last_line = line;
}
if (line > last_line
Index: ski-1.3.2/src/program.c
===================================================================
--- ski-1.3.2.orig/src/program.c 2008-09-03 07:40:09.366978143 +1000
+++ ski-1.3.2/src/program.c 2008-09-03 07:41:38.330303616 +1000
@@ -250,9 +250,9 @@
#else
char *p = line, *i0Str, *i1Str, *i2Str;
/* XXX - memory leak, these are never freed */
- i0Str = malloc(prgColumns - 19); /* + 1 for NUL */
- i1Str = malloc(prgColumns - 19);
- i2Str = malloc(prgColumns - 19);
+ i0Str = alloca(prgColumns - 19); /* + 1 for NUL */
+ i1Str = alloca(prgColumns - 19);
+ i2Str = alloca(prgColumns - 19);
if (!i0Str || !i1Str || !i2Str)
goto xxx;
#endif
@@ -268,11 +268,11 @@
dasInit(DasPseudoOps|DasTemplate|DasRegNames, prgColumns - 20);
dasBundle(&bndl, i0Str, i1Str, i2Str);
ipp = instPtr(ofs, i0Str);
- p += sprintf(p, "%s%c%c %s %s\r\n", srcp, bpn, ipp, buf, i0Str);
+ p += sprintf(p, "%s%c%c %s %s\n", srcp, bpn, ipp, buf, i0Str);
if (i1Str[0]) { /* not MLX */
bpn = ((i = isbpt(ofs + 4)) >= 0) ? (i + '0') : ' ';
ipp = instPtr(ofs + 4, i1Str);
- p += sprintf(p, "%c%c %16s %s\r\n", bpn, ipp, "", i1Str);
+ p += sprintf(p, "%c%c %16s %s\n", bpn, ipp, " ", i1Str);
bpn = ((i = isbpt(ofs + 8)) >= 0) ? (i + '0') : ' ';
ipp = instPtr(ofs + 8, i2Str);
} else { /* MLX */
@@ -280,12 +280,12 @@
? (i + '0') : ' ';
ipp = instPtr(ofs + 4, i2Str);
}
- p += sprintf(p, "%c%c %16s %s\r\n", bpn, ipp, "", i2Str);
+ p += sprintf(p, "%c%c %16s %s\n", bpn, ipp, " ", i2Str);
*asmrows = i1Str[0] ? 3 : 2;
} else {
xxx:
ipp = (ipGet(viewPid) == ofs) ? '>' : ' ';
- (void)sprintf(line, "%c%c %s xxxxxxxx\r\n", bpn, ipp, buf);
+ (void)sprintf(line, "%c%c %s xxxxxxxx\n", bpn, ipp, buf);
*srcrows = 0;
*asmrows = 1;
}
--
Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au
http://www.ertos.nicta.com.au ERTOS within National ICT Australia
A university is a non-profit organisation only in the sense that it
spends everything it gets ... Luca Turin.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]