strncpy (header.elf_note_header.name, "win32module", NOTE_NAME_SIZE);
#pragma GCC diagnostic pop
-#ifdef __x86_64__
module_pstatus_ptr->data_type = NOTE_INFO_MODULE64;
-#else
- module_pstatus_ptr->data_type = NOTE_INFO_MODULE;
-#endif
module_pstatus_ptr->data.module_info.base_address = module->base_address;
module_pstatus_ptr->data.module_info.module_name_size = strlen (module->name) + 1;
strcpy (module_pstatus_ptr->data.module_info.module_name, module->name);
#ifdef __x86_64__
const char *target = "elf64-x86-64";
#else
- const char *target = "elf32-i386";
+#error unimplemented for this target
#endif
core_bfd = bfd_openw (file_name, target);
}
int base_off = 108;
#else
- if (arch != IMAGE_FILE_MACHINE_I386)
- {
- puts (verbose ? " (not x86 dll)" : "\n");
- return;
- }
- int base_off = 92;
+#error unimplemented for this target
#endif
int opthdr_ofs = pe_header_offset + 4 + 20;
unsigned short v[6];
#ifdef __x86_64__
#define ARCH_STR "&arch=x86_64"
#else
-#define ARCH_STR "&arch=x86"
+#error unimplemented for this target
#endif
static const char *ARCH_str = ARCH_STR;
buf[len] = '\0';
char *s = strtok (buf, " ");
-#ifdef __x86_64__
unsigned long long n = strtoull (s, NULL, 16);
-#else
- unsigned long n = strtoul (s, NULL, 16);
-#endif
s = strchr (s, '\0') + 1;
if (include_hex)
{
s -= 8;
-#ifdef __x86_64__
sprintf (s, "%012llx", n);
-#else
- sprintf (s, "%08lx", n);
-#endif
strchr (s, '\0')[0] = ' ';
}
child->last_usecs = usecs;
case STATUS_BREAKPOINT:
case 0x406d1388: /* SetThreadName exception. */
break;
-#ifdef __x86_64__
case STATUS_GCC_THROW:
case STATUS_GCC_UNWIND:
case STATUS_GCC_FORCED:
status = DBG_EXCEPTION_NOT_HANDLED;
break;
-#endif
default:
status = DBG_EXCEPTION_NOT_HANDLED;
if (ev.u.Exception.dwFirstChance)
return 0ULL;
}
else
-//TODO this approach does not support 32-bit executables on 64-bit
#ifdef __x86_64__
return context->Rip;
#else
- return context->Eip;
+#error unimplemented for this target
#endif
}
read_child ((void *) &lfanew, sizeof (lfanew), &idh->e_lfanew, h);
ptr += lfanew;
- /* Code handles 32- or 64-bit headers depending on compilation environment. */
- /*TODO It doesn't yet handle 32-bit headers on 64-bit Cygwin or v/v. */
IMAGE_NT_HEADERS *inth = (IMAGE_NT_HEADERS *) ptr;
read_child ((void *) &ntsig, sizeof (ntsig), &inth->Signature, h);
if (ntsig != IMAGE_NT_SIGNATURE)
#ifdef __x86_64__
if (machine != IMAGE_FILE_MACHINE_AMD64)
#else
- if (machine != IMAGE_FILE_MACHINE_I386)
+#error unimplemented for this target
#endif
error (0, "target program was built for different machine architecture\n");
case STATUS_BREAKPOINT:
break;
-#ifdef __x86_64__
case STATUS_GCC_THROW:
case STATUS_GCC_UNWIND:
case STATUS_GCC_FORCED:
status = DBG_EXCEPTION_NOT_HANDLED;
break;
-#endif
default:
status = DBG_EXCEPTION_NOT_HANDLED;
#define CONTEXT_REG_FMT "%016llx"
#define ADDR_SSCANF_FMT "%lli"
#else
-#define KERNEL_ADDR 0x77000000
-#define CONTEXT_SP Esp
-#define CONTEXT_IP Eip
-typedef DWORD CONTEXT_REG;
-#define CONTEXT_REG_FMT "%08lx"
-#define ADDR_SSCANF_FMT "%li"
+#error unimplemented for this target
#endif
#define TRACE_SSP 0
printf ("esi %016llx edi %016llx ebp %016llx esp %016llx %016llx\n",
context.Rsi, context.Rdi, context.Rbp, context.Rsp, context.Rip);
#else
- printf ("eax %08lx ebx %08lx ecx %08lx edx %08lx eip\n",
- context.Eax, context.Ebx, context.Ecx, context.Edx);
- printf ("esi %08lx edi %08lx ebp %08lx esp %08lx %08lx\n",
- context.Esi, context.Edi, context.Ebp, context.Esp, context.Eip);
+#error unimplemented for this target
#endif
}
/* 1234567 123% 1234567 123% 1234567812345678 xxxxxxxxxxx */
printf (" Main-Thread Other-Thread BaseAddr DLL Name\n");
#else
- /* 1234567 123% 1234567 123% 12345678 xxxxxxxxxxx */
- printf (" Main-Thread Other-Thread BaseAddr DLL Name\n");
+#error unimplemented for this target
#endif
total_pcount = 0;