On Fri, 13 Jul 2007, Tirthankar wrote:

> Hi Frank,
>
> CR 6226326 has been put back to s10u3 also. It doesnt display the parameters. 
> My understanding is it essentially makes ::findstack work on an AMD64 core.

It was put back into onnv together with the save_args support, for which I 
cannot find the bugID right now; the latter is what matters, it's _NOT_ 
backported. Only opensolaris/onnv.

>
> The blog is a good pointer to find the parameters, but I would be more happy 
> if mdb could displaythe parametes like it does for sparc cores. Makes a 
> debuggers life much easier :)

That's why you have the feature in OpenSolaris - to make your life easier 
...

Btw, it's not _that_ much easier on SPARC. You don't know whether your 
argument registers have been re-used. On the (good) chance that they have 
not, you might get away with not having to look at the disassembly. But 
then, that's not _always_ the case.

FrankH.

>
> Thanks,
> Tirthankar
>
>
>
> Frank Hofmann wrote:
>
>> On Sun, 8 Jul 2007, Tirthankar wrote:
>> 
>>> Hi,
>>> 
>>> I am trying to debug a core from a AMD64 machine running S10u3.
>>> 
>>> MDB is unable to show any parameters in the stack backtrace
>> 
>> 
>> Yes, stacktraces with arguments shown were only integrated in 
>> onnv/OpenSolaris via:
>> 
>> 6226326 Need to improve stack tracing on x86
>> 
>> This works via compiler support - onnv/OpenSolaris is compiled in such a 
>> way that the generated assembly code stores function arguments on the stack 
>> as well as in the (ABI-mandated) registers. This way, mdb can show function 
>> arguments in stacktraces.
>> 
>> Solaris 10 doesn't do that. You'll need to do a manual heuristic. ACT is 
>> able to perform some of this work but it's not perfect. The whole shebang 
>> of how argument passing on AMD64 works and which heuristics are needed so 
>> that arguments can be reconstructed from the code flow is explained in:
>> 
>> http://opensolaris.org/os/community/documentation/doc_index/dev/
>> 
>> See "Crashdump Analysis". The file is:
>> 
>> http://opensolaris.org/os/community/documentation/files/book.pdf
>> 
>> FrankH.
>> 
>>> 
>>> cfa100 @ /net/coresvr/export/cores1/6570886plipstick1 $ mdb 5
>>> mdb: warning: dump is from SunOS 5.10 Generic_125101-07; dcmds and
>>> macros may not match kernel implementation
>>> Loading modules: [ unix krtld genunix dtrace specfs cpu.AuthenticAMD.15
>>> uppc pcplusmp ufs ipc ip sctp usba uhci s1394 fcp fctl emlxs qlc nca md
>>> lofs crypto zfs random cpc fcip logindmux ptm sppp ]
>>> >
>>> > ::status
>>> debugging crash dump vmcore.5 (64-bit) from plipstick1
>>> operating system: 5.10 Generic_125101-07 (i86pc)
>>> panic message: BAD TRAP: type=d (#gp General protection)
>>> rp=fffffe8002012b80 addr=80a8000
>>> dump content: kernel pages only
>>> > $c
>>> __1cG_SListJfind_elem6Mpvppn0AIListElem__3_+0x45()
>>> __1cSservice_admin_implN_unreferenced6Mpv_v_+0x3c()
>>> __1cPreplica_handlerNunref_by_ckpt6M_v_+0x172()
>>> __1cGhxdoorNunref_by_ckpt6M_v_+0x182()
>>> __1cOhxdoor_managerPrelease_by_ckpt6MrnJhxdoor_id__v_+0x116()
>>> __1cTckpt_handler_serverHprocess6MrnHservice__v_+0x2cb()
>>> __1cJckpt_elemHexecute6M_v_+0x4d()
>>> __1cTthreadpool_worker_tVdeferred_task_handler6M_v_+0x184()
>>> __1cKthreadpoolOthread_handler6FpnTthreadpool_worker_t__v_+0x25()
>>> cllwpwrapper+0x106()
>>> thread_start+8()
>>> >
>>> 
>>> This is a serious limitation. I finally used ACT to see the parameters
>>> but it also was not showing proper parameters all the time.
>>> 
>>> Is this a known issue ?
>>> Is there any other way to see the parameters ?
>>> 
>>> -- 
>>> Thanks,
>>> Tirthankar
>>> 
>>> _______________________________________________
>>> mdb-discuss mailing list
>>> mdb-discuss at opensolaris.org
>>> 
>

Reply via email to