<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Calculate HP Integrity Stack frame size in Operating System - HP-UX</title>
    <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581987#M679559</link>
    <description>&lt;P&gt;&amp;gt;We have an API in HP PA-RISC&lt;BR /&gt;&lt;BR /&gt;(Do not even think about those or model on those for Integrity.)&lt;BR /&gt;&lt;BR /&gt;&amp;gt;We need to calculate similarly the frame size for current and previous stack frames in HP Integrity?&lt;BR /&gt;&lt;BR /&gt;Why? The unwind(5) routines have been completely rewritten so you don't need to compute silly stuff like that. It just works.&lt;BR /&gt;&lt;BR /&gt;If you want to compute the framesize, you can just subtract the r12, SP register values.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 22 Aug 2011 02:50:48 GMT</pubDate>
    <dc:creator>Dennis Handly</dc:creator>
    <dc:date>2011-08-22T02:50:48Z</dc:date>
    <item>
      <title>Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581986#M679558</link>
      <description>Folks ,&lt;BR /&gt;&lt;BR /&gt;We need to calculate the frame size of a given stack frame in HP Itanium. &lt;BR /&gt;&lt;BR /&gt;We have an API in HP PARISC &lt;BR /&gt;"int U_get_previous_frame_x(cframe_info *curr_frame,pframe_info prev_frame,int   size);"&lt;BR /&gt;&lt;BR /&gt;From the above API using the pframe_info structure  and cframe_info  structure ,we can get the frame size by using the "curr_frame_size" and "prev_frame_size" member values.&lt;BR /&gt;&lt;BR /&gt;We need to calculate similarly the frame size for current and previous stack frames in HP Itanium.&lt;BR /&gt;&lt;BR /&gt;We are using the "uwx" API's in HP Itanium for stack traversing/stepping, but we are unable to find any API on how to calculate the frame size for current and previous frames.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Adarsh.</description>
      <pubDate>Thu, 11 Feb 2010 06:30:19 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581986#M679558</guid>
      <dc:creator>Adarsh Thampan</dc:creator>
      <dc:date>2010-02-11T06:30:19Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581987#M679559</link>
      <description>&lt;P&gt;&amp;gt;We have an API in HP PA-RISC&lt;BR /&gt;&lt;BR /&gt;(Do not even think about those or model on those for Integrity.)&lt;BR /&gt;&lt;BR /&gt;&amp;gt;We need to calculate similarly the frame size for current and previous stack frames in HP Integrity?&lt;BR /&gt;&lt;BR /&gt;Why? The unwind(5) routines have been completely rewritten so you don't need to compute silly stuff like that. It just works.&lt;BR /&gt;&lt;BR /&gt;If you want to compute the framesize, you can just subtract the r12, SP register values.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 02:50:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581987#M679559</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T02:50:48Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581988#M679560</link>
      <description>Teh code is legacy and it to be supported on Itanium . Hence we would need this information.&lt;BR /&gt;&lt;BR /&gt;Can you explain in details "subtract the r12, SP register values " .Also mention how do I get the r12 and SP register values ?</description>
      <pubDate>Thu, 11 Feb 2010 10:25:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581988#M679560</guid>
      <dc:creator>Adarsh Thampan</dc:creator>
      <dc:date>2010-02-11T10:25:00Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581989#M679561</link>
      <description>&lt;P&gt;&amp;gt;The code is legacy and it to be supported on Integrity. Hence we would need this information.&lt;BR /&gt;&lt;BR /&gt;If you are unwinding the stack, you must throw this code away and port to the uwx APIs, unwind(5).&lt;BR /&gt;&lt;BR /&gt;&amp;gt;Can you explain in details "subtract the r12, SP register values". Also mention how do I get the r12 and SP register values?&lt;BR /&gt;&lt;BR /&gt;You need to explain why you need the framesize. If you think you need it to unwind, you don't. If you think you need to format your output the same as before, you may want to rethink that.&lt;BR /&gt;&lt;BR /&gt;To get registers: _UNW_getGR(3X)&lt;BR /&gt;&lt;BR /&gt;Subtract the r12 (the real name for SP), register values from the adjoining frames.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 02:51:40 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581989#M679561</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T02:51:40Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581990#M679562</link>
      <description>We are porting a leagacy C code which does its own excpetion tracing , hence the design of the modules are such that it requires the regsiter values and framesize.&lt;BR /&gt;&lt;BR /&gt;I agree that we could use unwind and uwx functions completely and eradicate the whole old stuff but in doing that I will have to rewrite a lot of code and maybe re-design as well .&lt;BR /&gt;&lt;BR /&gt;Can you gimme some artefact that neatly explains the Itanium registers and their contents and also the the frame structure( if any) that holds all these values ?&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 11 Feb 2010 11:13:57 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581990#M679562</guid>
      <dc:creator>Adarsh Thampan</dc:creator>
      <dc:date>2010-02-11T11:13:57Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581991#M679563</link>
      <description>&amp;gt;We are porting a legacy C code which does its own exception tracing &lt;BR /&gt;&lt;BR /&gt;You can just call U_STACK_TRACE or its variants.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;hence the design of the modules are such that it requires the register values and framesize.&lt;BR /&gt;&lt;BR /&gt;None of these values are useful in calling unwind(5).  Unless you just like to print out hex numbers.  :-)&lt;BR /&gt;There are 128 GRs and FRs.  There are 64 PRs.  And 8 BRs.  And 128 ARs.  And 82 CRs.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;I agree that we could use unwind and uwx functions completely &lt;BR /&gt;&lt;BR /&gt;You have no choice but to use uwx.  (But perhaps not completely?)&lt;BR /&gt;&lt;BR /&gt;&amp;gt;Can you gimme some artifact that neatly explains the Itanium registers and their contents and also the the frame structure (if any) that holds all these values?&lt;BR /&gt;&lt;BR /&gt;You need to look for Itanium runtime conventions.  Note there are two stacks, the user stack and the RSE stack.  Start here:&lt;BR /&gt;&lt;A href="http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=821ffd06ab1b7110VgnVCM100000275d6e10RCRD" target="_blank"&gt;http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801?ciid=821ffd06ab1b7110VgnVCM100000275d6e10RCRD&lt;/A&gt;</description>
      <pubDate>Thu, 11 Feb 2010 11:58:23 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581991#M679563</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2010-02-11T11:58:23Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581992#M679564</link>
      <description>&lt;P&gt;It might be helpful to attach an example stack trace output format.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 02:52:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581992#M679564</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T02:52:07Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581993#M679565</link>
      <description>HI ,&lt;BR /&gt;&lt;BR /&gt;I have attached the list of registers that are being displayed as a part of the exception trace for HP PARISC application.&lt;BR /&gt;&lt;BR /&gt;Now we need to display similar set of register values , since we are porting this on HP Itanium .&lt;BR /&gt;&lt;BR /&gt;Please help us in identifying the set of registers ,</description>
      <pubDate>Wed, 24 Feb 2010 11:50:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581993#M679565</guid>
      <dc:creator>Adarsh Thampan</dc:creator>
      <dc:date>2010-02-24T11:50:37Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581994#M679566</link>
      <description>&lt;P&gt;&amp;gt;I have attached the list of registers that are being displayed as a part of the exception trace for PA-RISC application.&lt;BR /&gt;&lt;BR /&gt;I don't think any of these registers are in Integrity. Also, while these are defined in , this file doesn't exist on Integrity.&lt;BR /&gt;ucontext_t contains mcontext_t, which is an opaque struct.&lt;BR /&gt;&lt;BR /&gt;You must use the functions in uc_access(3) to get register values.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;we need to display similar set of register values&lt;BR /&gt;&lt;BR /&gt;About the best you can do is dump all that uc_access(3) provides.&lt;BR /&gt;If you use gdb's "info all-reg", you can see a list of all registers.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 02:52:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581994#M679566</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T02:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Itanium Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581995#M679567</link>
      <description>Yes , You are correct .&lt;BR /&gt;&lt;BR /&gt;The registers that I had attached are PARISC registers whose contents were displayed as a prt of the exception tracing.&lt;BR /&gt;&lt;BR /&gt;Now we are porting thsi application to HPItanium , hence we need to know the corressponding registers in Itanium that case be used for exception tracing.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 25 Feb 2010 12:53:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581995#M679567</guid>
      <dc:creator>Adarsh Thampan</dc:creator>
      <dc:date>2010-02-25T12:53:05Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581996#M679568</link>
      <description>&lt;P&gt;&amp;gt;hence we need to know the corresponding registers&lt;BR /&gt;&lt;BR /&gt;Do you still have a question here that's not explained by uc_access(3)?&lt;BR /&gt;&lt;BR /&gt;&amp;gt;be used for exception tracing.&lt;BR /&gt;&lt;BR /&gt;Note: On HP-UX, these are called signals, not to be confused with C++ exceptions.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 02:55:35 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581996#M679568</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T02:55:35Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate HP Integrity Stack frame size</title>
      <link>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581997#M679569</link>
      <description>&lt;P&gt;From a recent thread:&lt;BR /&gt;&lt;A target="_blank" href="http://h30499.www3.hp.com/t5/Languages-and-Scripting/Return-address-of-a-function-in-a-frame/m-p/4591378"&gt;http://h30499.www3.hp.com/t5/Languages-and-Scripting/Return-address-of-a-function-in-a-frame/m-p/4591378&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;You can get the UWX_REG_PSP pseudo register and then subtract to get the framesize.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Aug 2011 03:04:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-hp-ux/calculate-hp-itanium-stack-frame-size/m-p/4581997#M679569</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2011-08-22T03:04:11Z</dc:date>
    </item>
  </channel>
</rss>

