Sorry for mixing up the emails. Earlier one was from my private email. On Mon, Apr 23, 2018 at 5:49 PM, Buddhika Chamith Kahawitage Don < budka...@iu.edu> wrote:
> I want to collect all the stack traces. This is for a study of spec > applications. > > On Mon, Apr 23, 2018 at 5:40 PM, Xiaozhu Meng <mxz...@gmail.com> wrote: > >> Do you want to collect all stack traces during its run or you have a few >> points you are interested in where you want to collect stack traces (such >> as function entries, basic block entries)? >> >> On Mon, Apr 23, 2018 at 4:20 PM, budchan chao <cbudc...@yahoo.com> wrote: >> >>> Right, I want to just collect all the return addresses and get all the >>> stack traces a program makes during its run. So would work if I add this >>> stack walking code as part of return instrumentation? >>> >>> On Monday, 23 April, 2018, 4:50:44 PM GMT-4, Xiaozhu Meng < >>> mxz...@gmail.com> wrote: >>> >>> >>> Hi, >>> >>> Passing (rsp) to your instrumentation function is not going to do what >>> you plan to do because Dyninst's internal instrumentation code will have >>> changed the value of rsp. >>> >>> For us to better help you, can you describe what exactly you would like >>> to do? It seems to me that you are trying to collecting return addresses >>> and manually reconstruct call stacks. If it is the case, the stackwalkAPI >>> is better suited for this purpose. You can refer the documentation for >>> better idea of what stackwalkAPI can do (https://github.com/mxz297/dyn >>> inst/blob/master/stackwalk/doc/stackwalk.pdf). >>> >>> Thanks, >>> >>> --Xiaozhu >>> >>> On Sun, Apr 22, 2018 at 2:49 PM, budchan chao <cbudc...@yahoo.com> >>> wrote: >>> >>> I want to use Dyninst to trace the runtime stack. I was thinking doing a >>> call out to an instrumentation function at each function entry which would >>> accept the dereferenced rsp value (which will be the return address at the >>> function entry) as an argument and log it within this instrumentation >>> function which I load from a shared library. I am not quite sure how to get >>> the dereferenced register value and do the function call using it as an >>> argument. I see Bpatch_registerExpr but I am not sure how to initialize >>> with the dereferenced rsp register value. Can somebody give me a pointer on >>> how to do this? Or is there a better of doing it? >>> >>> Thanks >>> >>> >>> ______________________________ _________________ >>> Dyninst-api mailing list >>> Dyninst-api@cs.wisc.edu >>> https://lists.cs.wisc.edu/ mailman/listinfo/dyninst-api >>> <https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api> >>> >>> >>> >> >> _______________________________________________ >> Dyninst-api mailing list >> Dyninst-api@cs.wisc.edu >> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api >> > >
_______________________________________________ Dyninst-api mailing list Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api