Linux2009.04.24 14:11
352 static int handle_unaligned_access(u16 instruction, struct pt_regs *regs)
353 {
354 u_int rm;
355 int ret, index;
356
357 index = (instruction>>8)&15; /* 0x0F00 */
358 rm = regs->regs[index];
359
360 /* shout about the first ten userspace fixups */
361 if (user_mode(regs) && handle_unaligned_notify_count>0) {
362 handle_unaligned_notify_count--;
363
364 printk("Fixing up unaligned userspace access in \"%s\" pid=%d pc=0x%p ins=0x%04hx\n",
365 current->comm,current->pid,(u16*)regs->pc,instruction);
366 }
...
487 }


[링크 : http://www.gelato.unsw.edu.au/lxr/source/arch/sh/kernel/traps.c]

Fixing up unaligned userspace access in "stbmw.out" pid=378 pc=0x29aa1848 ins=0x6111
이러한 커널 경고 메시지가 나올 때
PID는 Process ID
PC는 Program counter
INS는 INStruction 을 의미한다.


Fixing up unaligned userspace access in "sh" pid=48 pc=0x0ccda168 ins=0x60f0
Fixing up unaligned userspace access in "sh" pid=48 pc=0x0ccd9eac ins=0x9015

DissAddr Obj Code Dissassembly

0CCDA158 6893 MOV R9,R8
0CCDA15A 410B JSR @R1
0CCDA15C 7801 ADD #H'01,R8
0CCDA15E 64A2 MOV.L @R10,R4
0CCDA160 3488 SUB R8,R4
0CCDA162 D13C MOV.L @(H'00F0:8,PC),R1
0CCDA164 410B JSR @R1
0CCDA166 0009 NOP
0CCDA168 60F0 MOV.B @R15,R0 ## Faulting Address
0CCDA16A 8809 CMP/EQ #H'09,R0
0CCDA16C 8904 BT @H'CCDA178:8
0CCDA16E 9162 MOV.W @(H'00C4:8,PC),R1
0CCDA170 31FC ADD R15,R1
0CCDA172 9061 MOV.W @(H'00C2:8,PC),R0
0CCDA174 5119 MOV.L @(H'24:4,R1),R1
0CCDA176 0F16 MOV.L R1,@(R0,R15)
0CCDA178 AE21 BRA @H'CCD9DBE:12
0CCDA17A 0009 NOP

[링크 : http://markmail.org/message/yfqbcoa6xumlk6pdb+state:results]

그나저나.. so 파일로 분산해서 사용할 때는 어떻게 해야 하나..
Posted by 구차니

댓글을 달아 주세요