[PATCH 3/4] ldv/unwind: handle deleted file when building map cache

Masatake YAMATO yamato at redhat.com
Wed Apr 16 07:33:08 UTC 2014


On Fri, 11 Apr 2014 03:26:38 +0400, "Dmitry V. Levin" <ldv at altlinux.org> wrote:
> On Thu, Apr 10, 2014 at 01:52:11AM +0900, Masatake YAMATO wrote:
>> Signed-off-by: Masatake YAMATO <yamato at redhat.com>
>> ---
>>  unwind.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>> 
>> diff --git a/unwind.c b/unwind.c
>> index a7e985e..0f9f79d 100644
>> --- a/unwind.c
>> +++ b/unwind.c
>> @@ -130,6 +130,7 @@ build_mmap_cache(struct tcb *tcp)
>>  	char filename[sizeof ("/proc/0123456789/maps")];
>>  	char buffer[PATH_MAX + 80];
>>  	char binary_path[PATH_MAX];
>> +	size_t blen;
>>  	struct mmap_cache_t *cur_entry, *prev_entry;
>>  	/* start with a small dynamically-allocated array and then expand it */
>>  	size_t cur_array_size = 10;
>> @@ -162,6 +163,11 @@ build_mmap_cache(struct tcb *tcp)
>>  		if (binary_path[0] == '\0')
>>  			continue;
>>  
>> +		/* ignore deleted file. */
>> +		blen = strlen(binary_path);
>> +		if (blen >= 10 && strcmp(binary_path + blen - 10, " (deleted)") == 0)
>> +			continue;
>> +
> 
> First of all, please do not hardcode magic numbers.
> If you mean strlen("(deleted)"), just write it.

Rewrited using strlen.
[PATCH v4 11/37] unwind: report expected backtracing error
 
> Second, why deleted files should be excluded from stack trace?

It triggers printing the error message.  I guess it comes from the
limitation/specification of libunwind.

I wanted to hide it to avoid receiving bug reports. However, 
I recognize just hiding is bad idea. So in the new patch,
strace reports it as an "expected" error.

[PATCH v4 11/37] unwind: report expected backtracing error

Masatake YAMATO
 
> 
> -- 
> ldv




More information about the Strace-devel mailing list