Re: Breakpoint on first instruction in program

Bob Plantz <[email protected]> Thu, 21 Jun 2012 08:41:30 -0700
Newsgroups gmane.comp.gdb.general
Message-ID <[email protected]>
On 06/21/2012 03:46 AM, Iurie wrote:
> Hi Bob,
> what course u are teaching out there? give me the link to it, perhaps 
> i will learn there something useful as i am also a student.

I retired from teaching in 2004, but I keep my book, Introduction to 
Computer Architecture, updated. It is available on my web site: 
bob.cs.sonoma.edu

I checked info gdb. Under Source->Specify Location I found an entry for 
`*ADDRESS'. Apparently, the *ADDRESS form is for C, C++, Java, 
Objective-C, Fortran, minimal, and assembly. The *&ADDRESS' form is for 
Pascal and Modula-2. However, it seems that gdb is forgiving between 
these two forms. And, from my personal experience, this can differ 
between versions and can change over time.

--Bob


>
> On 21 June 2012 05:09, Bob Plantz <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     On 6/20/2012 1:39 PM, Adam Beneschan wrote:
>
>
>             I am using the following assembly language program
>             (doNothingProg.s) for
>             instruction purposes:
>
>                      .text
>                      .globl  main
>                      .type   main, @function
>             main:
>                      pushq   %rbp        # save caller's frame pointer
>                      movq    %rsp, %rbp  # establish our frame pointer
>                      movl    $0, %eax    # return 0 to caller
>                      movq    %rbp, %rsp  # restore stack pointer
>                      popq    %rbp        # restore caller's frame pointer
>                      ret                 # back to caller
>
>             I want to set a breakpoint at the first instruction (pushq
>             %rbp) so
>             students can see how the stack frame is created.
>
>         break *&main
>
>                                         -- Adam
>
>     Thank you for the response Adam.
>
>     Actually, break *main worked for me. (Or just br *main). I'm not
>     in Linux right now, but I will double check next time I log in.
>
>     I found this by using info gdb and some looking around. As usual,
>     the answer is in the documentation, as I often told my students. :-[
>
>     --Bob
>
>
>