[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libunwind] backtrace on EM64T

From: Arun Sharma (अरुण)
Subject: Re: [libunwind] backtrace on EM64T
Date: Wed, 23 Nov 2005 10:50:13 -0800
User-agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)

Yeshurun, Meir wrote:

I failed to grep dwarf_cie_t.

Anyway, I thought the cache should be ip -> dwarf_reg_state. Does
that make sense?

I think you're right.

These routines are fetching the unwind information:

  if ((ret = fetch_proc_info (c, c->ip, 1)) < 0)
    return ret;

  if ((ret = create_state_record_for (c, &sr, c->ip)) < 0)
    return ret;

And this one is actually doing the unwind:

  apply_reg_state (c, &sr.rs_current)

So if we create a ip -> sr.rs_current cache, we don't have to execute the fetch_proc_info() and create_state_record_for() everytime.

I noticed that ia64 has state records as well, but prefers to build a "script" from those state records for faster execution.

Because the x86-64 unwind information is relatively less complicated, we can skip the scripts and just execute the sr.rs_current directly.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]