Hello,
Are the _UPT_access_* functions from libunwind-ptrace deprecated? The
man-page documentation[1] for these functions is lacking and I don't really
understand why they should be used over the corresponding unw_get_*
functions. It seems like the former don't work as expected in some cases.
Like the documentation suggests, I am creating an address-space, a UPT-info
structure and doing the remote initialization (using unw_init_remote) and
then with:
while (unw_step(&cursor) > 0) {
_UPT_access_reg(uaddrspace, UNW_REG_IP, &ip, 0, upt_info);
_UPT_get_proc_name(uaddrspace, ip, name, 128, &val, upt_info);
printf("-- fn = %s, ip = %lx\n", name, (long)ip);
}
I was hoping to get the backtrace of the remote process, but it just prints
the same thing multiple times (I tried to flush the cache explicitly but it
didn't make a difference). Instead, I can get the backtrace successfully
using the following:
while (unw_step(&cursor) > 0) {
unw_get_reg(&cursor, UNW_REG_IP, &ip);
unw_get_proc_name(&cursor, name, 128, 0);
//_UPT_access_reg(uaddrspace, UNW_REG_IP, &ip, 0, upt_info);
//_UPT_get_proc_name(uaddrspace, ip, name, 128, &val, upt_info);
printf("-- fn = %s, ip = %lx\n", name, (long)ip);
}
Am I missing something with how the _UPT_access_* functions are to be used?
Thanks,
Abhishek
[1] http://www.nongnu.org/libunwind/man/libunwind-ptrace(3).html
_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel