#include "unw_nto_internal.h"
#include <limits.h>
#include <stdio.h>
int unw_nto_get_elf_filename (unw_addr_space_t as,
unw_word_t ip,
char *buf,
size_t buf_len,
unw_word_t *offp,
void *arg)
{
unw_nto_internal_t *uni = (unw_nto_internal_t *)arg;
char path[PATH_MAX] = {0};
size_t path_len = sizeof (path);
int ret = -UNW_ENOINFO;
#if UNW_ELF_CLASS == UNW_ELFCLASS64
ret = _Uelf64_get_elf_filename (as, uni->pid, ip, path, path_len, offp);
#elif UNW_ELF_CLASS == UNW_ELFCLASS32
ret = _Uelf32_get_elf_filename (as, uni->pid, ip, path, path_len, offp);
#else
# error no valid ELF class defined
#endif
if (ret >= 0)
snprintf (buf, buf_len, "%s", path);
return ret;
}