Bug 6626

Summary: vdso lost in backtrace
Product: frysk Reporter: Andrew Cagney <cagney>
Component: generalAssignee: Andrew Cagney <cagney>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 6622    

Description Andrew Cagney 2008-06-11 17:14:38 UTC
On the demo machine, and from memory:

$ ./frysk/bindir/fstack $$
Task #14996
#0 0x00110416 in [unknown]
#1 0x0807d210 in wait_for () from bash
#2 0x0806e959 in execute_command_internal () from bash
#3 0x0806eb33 in execute_command () from bash
#4 0x0805f067 in reader_loop () from bash
#5 0x0805ec25 in main () from bash
#6 0x00a235d6 in __libc_start_main () from libc-2.8.so
#7 0x0805c7f1 in _start () from bash
$ head /proc/14996/maps 
00110000-00111000 r-xp 00110000 00:00 0          [vdso]
00111000-0011b000 r-xp 00000000 08:05 463173     /lib/libnss_files-2.8.so
0011b000-0011c000 r--p 0000a000 08:05 463173     /lib/libnss_files-2.8.so
Comment 1 Andrew Cagney 2008-06-19 19:59:30 UTC
commit edfa23da73934bf0ab40697a13b0731feabb337c
Author: Andrew Cagney <cagney@redhat.com>
Date:   Thu Jun 19 15:51:27 2008 -0400

    Include VDSO in address map.
    
    frysk-sys/lib/dwfl/ChangeLog
    2008-06-19  Andrew Cagney  <cagney@redhat.com>
    
        * cni/Dwfl.cxx (dwfl_frysk_proc_find_elf): Always set file_name so
        elfutils realises that the ELF was set.
        * jni/Dwfl.cxx: Ditto.
        * TestDwfl.java (testMapContainsVdso): Check the vdso's elf.
        * Dwfl.java (mapModule): Include segments starting with "[".

commit bd2d28691caa79f3434474ae2bb1537b428aaf41
Author: Andrew Cagney <cagney@redhat.com>
Date:   Thu Jun 19 14:05:28 2008 -0400

    Make memory accessable from all dwfl-modules.
    
    Rather than try to pick out the [vdso] map, just make the target's
    memory available from all Dwfl_Modules.
    
    frysk-core/frysk/dwfl/ChangeLog
    2008-06-19  Andrew Cagney  <cagney@redhat.com>
    
        * DwflCache.java (getDwfl()): Pass the task's memory to the Dwfl
        and down to the native code, don't pass the vdso address.
        * DwflFactory.java (updateDwfl): Don't set the module's memory.
    
    frysk-sys/lib/dwfl/ChangeLog
    2008-06-19  Andrew Cagney  <cagney@redhat.com>
    
        * DwflTestbed.java (createFromSelf()): Pass LocalMemory to the Dwfl.
        * cni/DwflModule.cxx (DwflModule::setUserData): Delete.
        * jni/DwflModule.cxx (DwflModule::setUserData): Delete.
        * Dwfl.java (Dwfl(String,ByteBuffer)): New.
        * DwflModule.java (setUserData(Object)): Delete.
        * jni/Dwfl.cxx: Update.
        * cni/Dwfl.cxx: Update.

Comment 2 Andrew Cagney 2008-06-19 20:18:31 UTC
Testing on f9 shows it's fixed.