X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fdebuginfo.c;h=d5832173de356ab2ffb8653125ebdbd3980cd99b;hp=517e1bcac8dc25d55b8d31d9661e16c1cf11cfac;hb=ad2b5b38baf7f69697162ef460e86c90035fe088;hpb=458af89d3baff393a4c38f70520fb51b811ad932 diff --git a/lib/debuginfo.c b/lib/debuginfo.c index 517e1bca..d5832173 100644 --- a/lib/debuginfo.c +++ b/lib/debuginfo.c @@ -84,7 +84,8 @@ void debug_info_source_destroy(struct debug_info_source *debug_info_src) } free(debug_info_src->func); - free(debug_info_src->filename); + free(debug_info_src->src_path); + free(debug_info_src->bin_path); g_free(debug_info_src); } @@ -154,17 +155,12 @@ struct debug_info_source *debug_info_source_create_from_so(struct so_info *so, debug_info_src->line_no = src_loc->line_no; if (src_loc->filename) { - debug_info_src->filename = strdup(src_loc->filename); - if (!debug_info_src->filename) { + debug_info_src->src_path = strdup(src_loc->filename); + if (!debug_info_src->src_path) { goto error; } - /* - * The short version of the filename does not include - * the full path, it will only point to the last element - * of the path (anything after the last '/'). - */ - debug_info_src->short_filename = get_filename_from_path( + debug_info_src->short_src_path = get_filename_from_path( src_loc->filename); } @@ -172,6 +168,16 @@ struct debug_info_source *debug_info_source_create_from_so(struct so_info *so, source_location_destroy(src_loc); } + if (so->elf_path) { + debug_info_src->bin_path = strdup(so->elf_path); + if (!debug_info_src->bin_path) { + goto error; + } + + debug_info_src->short_bin_path = get_filename_from_path( + debug_info_src->bin_path); + } + end: return debug_info_src;