summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeki <treeki@gmail.com>2011-08-01 16:34:03 +0200
committerTreeki <treeki@gmail.com>2011-08-01 16:34:03 +0200
commit56bfafbdfba08332164d72f84b2105aa1123cb07 (patch)
treee81dda95ab6af0b9d91d1fed8ae639ad01b8f438 /src
parent803c43cce9a5494d842856dd2e2aeb40666fe48a (diff)
downloadkamek-56bfafbdfba08332164d72f84b2105aa1123cb07.tar.gz
kamek-56bfafbdfba08332164d72f84b2105aa1123cb07.zip
added actor logging
Diffstat (limited to 'src')
-rw-r--r--src/actorlog.S41
-rwxr-xr-xsrc/destroy_tracker.cpp19
2 files changed, 60 insertions, 0 deletions
diff --git a/src/actorlog.S b/src/actorlog.S
new file mode 100644
index 0000000..f4e7205
--- /dev/null
+++ b/src/actorlog.S
@@ -0,0 +1,41 @@
+.text
+
+.set sp, 1
+
+.align 4
+.extern OSReport
+
+.global ActorLogHook
+ActorLogHook:
+ stwu sp, -0x20(sp)
+ mflr r0
+ stw r0, 0x24(sp)
+ stw r3, 0x1C(sp)
+ stw r4, 0x18(sp)
+ stw r5, 0x14(sp)
+ stw r6, 0x10(sp)
+
+ lis r8, 0x8032
+ ori r8, r8, 0xB58
+ slwi r7, r3, 2
+ lwzx r7, r8, r7
+
+ lis r3, M@h
+ ori r3, r3, M@l
+ crclr 4*cr1+eq
+ bl OSReport
+
+ lwz r6, 0x10(sp)
+ lwz r5, 0x14(sp)
+ lwz r4, 0x18(sp)
+ lwz r3, 0x1C(sp)
+ lwz r0, 0x24(sp)
+ mtlr r0
+ addi sp, sp, 0x20
+
+ # Return to __objCreate
+ clrlslwi r31, r3, 16, 2
+ blr
+
+.data
+M: .string "P:%p S:%08x T:%d N:%s\n"
diff --git a/src/destroy_tracker.cpp b/src/destroy_tracker.cpp
new file mode 100755
index 0000000..15bace9
--- /dev/null
+++ b/src/destroy_tracker.cpp
@@ -0,0 +1,19 @@
+#include <common.h>
+
+// @@ %SET_OFFSET 817F4000
+
+// @@ %IFREGION pal
+// @@ %PATCH 801626C0 %b:817F4000
+// @@ %ENDIF
+
+int trackDestroy(int objptr) {
+ int oldLR;
+ __asm__ __volatile__ (
+ "mflr %0"
+ : "=r" (oldLR)
+ );
+ OSReport("D%x @%x", objptr, oldLR);
+ return objptr;
+}
+
+