lkml.org 
[lkml]   [2004]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Accessing program counter registers from within C or Assembler.
    Thank you for your reply, please see my answers
    embedded below:
    --- Valdis.Kletnieks@vt.edu wrote:
    > On Tue, 16 Nov 2004 13:20:15 PST, A M said:
    >
    > > Does anybody know how to access the address of the
    > > current executing instruction in C while the
    > program
    > > is executing?
    >
    > For what processor? x86, itanium, sparc, s390 all
    > do it differently.
    I am targeting an x86 machines.
    >
    > Also, the answer to "this *very* instruction" is
    > different from
    > "where this instruction was when we
    > trapped/kdbg/interrupt/whatever
    > it so we could look at the current
    > process/thread/worker state".
    >
    > In other words, are you trying to answer "Where in
    > memory am *I*?"
    > or "Where in memory is <that very recent code I want
    > to look at>?"
    it is close to the second scenario ("Where in memory
    is...") the basic idea is to come up with a
    passive-software based data bus analyzer that can be
    used to monitor/sample instructions of a process (a
    section of a process) or a thread while executing.
    >
    > (Hint - for the former, you can probably get very
    > good approximations
    > by just looking at the entry point address for the
    > function:
    >
    > (void *) where = &__FUNCTION__;
    >
    > > Also, is there a method to load a program image
    > from
    > > memory not a file (an exec that works with a
    > memory
    > > address)? Mainly I am looking for a method that
    > brings
    > > a program image into memory modify parts of it and
    > > start the in-memory modified version.
    >
    > In user space, you probably want either mmap() or
    > dlopen(), depending what it
    > is you're trying to do, most likely...
    >
    > In kernel space, you'll have to be more specific as
    > to what you're
    > trying to do, but you're always welcome to write a
    > replacement for
    > fs/binfmt_elf.c :)
    >
    > > Can anybody think of a method to replace a thread
    > > image without replacing the whole process image?
    >
    > What are you trying to achieve here? It's unclear
    > what you're
    > hoping will happen....
    The ability to create threads and replace the
    functionality of one of the threads with a previously
    compiled program (a complete process).
    >

    > ATTACHMENT part 2 application/pgp-signature





    __________________________________
    Do you Yahoo!?
    The all-new My Yahoo! - Get yours free!
    http://my.yahoo.com

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:08    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean