Bug 5260

Summary: stepping through a plt (on x86-64?)
Product: frysk Reporter: Andrew Cagney <cagney>
Component: generalAssignee: Mike Cvet <mcvet>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Bug Depends on: 5259    
Bug Blocks: 2246, 5292    

Description Andrew Cagney 2007-11-02 16:26:29 UTC
For instance,

42       void
43*      print(char *what) {
44         while (*what != '\0') {
45           write(1, what, 1);
(fhpd) step
Task stopped at line 56 in file
/home/mark/src/git/frysk-obj/frysk-core/../../frysk/frysk-core/frysk/pkglibdir/funit-hello.c
(fhpd) where                            
#0 0x08048455 in __i686.get_pc_thunk.bx () from
/home/mark/src/git/frysk-obj/frysk-core/frysk/pkglibdir/funit-hello

it should do something more sensible such as step through the plt, or step over
the called library function.

Note that there's an unwinder bug lurking here.
Comment 1 Mike Cvet 2008-01-15 02:25:55 UTC
Date:   Mon Jan 14 21:13:47 2008 -0500

    frysk-core/frysk/dwfl:
    2008-01-14  Mike Cvet  <mcvet@redhat.com>
    
    	* ElfSectionCache.java: Added.
    	* TestElfSectionCache.java: Added.
    
    frysk-core/frysk/pkglibdir:
    2007-01-14  Mike Cvet  <mcvet@redhat.com>
    
    	* funit-libcall.c: Added.
    
    frysk-core/frysk/stepping:
    2008-01-14  Mike Cvet  <mcvet@redhat.com>
    	* InstructionStepThroughState.java: Added, fixing #5260.
    	* InstructionStepState.java (handleUpdate): Added code to
    	check if the PC is inside a PLT section, and then defer work to
    	above State. Fixes #5260.
    	* TestStepping.java (testInstructionStepThroughSection): Added.
    	* SteppingEngine.java (stepOut): Now requires Frames instead of
    	DebugInfoFrames.
    	(stepOut): Added, taking a State parameter for use from State classes.