summaryrefslogtreecommitdiffstats
path: root/sys/contrib/ia64/libuwx/test/dumpmyself.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/ia64/libuwx/test/dumpmyself.c')
-rw-r--r--sys/contrib/ia64/libuwx/test/dumpmyself.c106
1 files changed, 0 insertions, 106 deletions
diff --git a/sys/contrib/ia64/libuwx/test/dumpmyself.c b/sys/contrib/ia64/libuwx/test/dumpmyself.c
deleted file mode 100644
index c2b63d0..0000000
--- a/sys/contrib/ia64/libuwx/test/dumpmyself.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include "uwx.h"
-#include "uwx_self.h"
-
-struct uwx_env *uenv;
-struct uwx_self_info *cbinfo;
-
-extern int uwx_get_frame_info(struct uwx_env *uenv);
-
-extern void dump_context(uint64_t *context);
-
-extern void prime_registers();
-
-int main(int argc, char **argv)
-{
- int status;
- unsigned int *wp;
- uenv = uwx_init();
- printf("uwx_init returned %08x\n", uenv);
- cbinfo = uwx_self_init_info(uenv);
- status = uwx_register_callbacks(
- uenv,
- (intptr_t)cbinfo,
- uwx_self_copyin,
- uwx_self_lookupip);
- printf("uwx_register_callbacks returned %d\n", status);
- uwx_self_init_context(uenv);
- printf("In main():\n");
- dump_context((uint64_t *)uenv);
- prime_registers();
- uwx_free(uenv);
- return 0;
-}
-
-int func1(void)
-{
- uwx_self_init_context(uenv);
- printf("In func1():\n");
- dump_context((uint64_t *)uenv);
- return func2();
-}
-
-int func2(void)
-{
- uwx_self_init_context(uenv);
- printf("In func2():\n");
- dump_context((uint64_t *)uenv);
- return func3();
-}
-
-int func3(void)
-{
- uwx_self_init_context(uenv);
- printf("In func3():\n");
- dump_context((uint64_t *)uenv);
- return func4();
-}
-
-int func4(void)
-{
- int status;
- int foo[10];
- uint64_t *p;
- uint64_t disp;
- uint64_t val;
-
- func5(foo);
- uwx_self_init_context(uenv);
- uwx_init_history(uenv);
- printf("In func4():\n");
- dump_context((uint64_t *)uenv);
- for (;;) {
- status = uwx_step(uenv);
- if (status != UWX_OK) {
- printf("uwx_step returned %d\n", status);
- break;
- }
- status = uwx_get_reg(uenv, UWX_REG_PFS, &val);
- if (status != UWX_OK) {
- printf("uwx_get_reg returned %d\n", status);
- break;
- }
- printf("After step:\n");
- dump_context((uint64_t *)uenv);
- status = uwx_get_spill_loc(uenv, UWX_REG_IP, &disp);
- if (status == UWX_OK) {
- p = (uint64_t *)(disp & ~0x7LL);
- if ((disp & 0x7) == UWX_DISP_RSTK(0))
- printf("IP spilled to backing store %08x = %08x\n",
- (int)p, (int)(*p));
- else if ((disp & 0x7) == UWX_DISP_MSTK(0))
- printf("IP spilled to mem stack %08x = %08x\n",
- (int)p, (int)(*p));
- else if ((disp & 0x7) == UWX_DISP_REG(0))
- printf("IP found in register %08x\n", (int)disp >> 4);
- else
- printf("IP history not available\n");
- }
- }
- return 0;
-}
-
-int func5(int *foo)
-{
- foo[0] = 0;
- return 0;
-}
OpenPOWER on IntegriCloud