From e1f1ed1ad75d43e928ce1fa347659d3490b539aa Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 Jul 1998 18:00:49 +0000 Subject: Cope with setting trace points on symbols which do not have an associated directory. --- gdb/tracepoint.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'gdb/tracepoint.c') diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index fa5ac4d..20379c1 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -333,18 +333,26 @@ set_raw_tracepoint (sal) t->source_file = NULL; else { - char *p; - - t->source_file = (char *) xmalloc (strlen (sal.symtab->filename) + - strlen (sal.symtab->dirname) + 2); - - strcpy (t->source_file, sal.symtab->dirname); - p = t->source_file; - while (*p) - p++; - if (*(--p) != '/') /* Will this work on Windows? */ - strcat (t->source_file, "/"); - strcat (t->source_file, sal.symtab->filename); + if (sal.symtab->dirname == NULL) + { + t->source_file = (char *) xmalloc (strlen (sal.symtab->filename) + 1); + strcpy (t->source_file, sal.symtab->filename); + } + else + { + char *p; + + t->source_file = (char *) xmalloc (strlen (sal.symtab->filename) + + strlen (sal.symtab->dirname) + 2); + + strcpy (t->source_file, sal.symtab->dirname); + p = t->source_file; + while (*p) + p++; + if (*(--p) != '/') /* Will this work on Windows? */ + strcat (t->source_file, "/"); + strcat (t->source_file, sal.symtab->filename); + } } t->language = current_language->la_language; -- cgit v1.1