正在显示
2 个修改的文件
包含
17 行增加
和
1 行删除
@@ -47,6 +47,22 @@ void func0() | @@ -47,6 +47,22 @@ void func0() | ||
47 | * unless USE_LIBC_SETJMP is defined. | 47 | * unless USE_LIBC_SETJMP is defined. |
48 | */ | 48 | */ |
49 | // for glibc 2.4+, it's not possible to get and set the sp in jmp_buf | 49 | // for glibc 2.4+, it's not possible to get and set the sp in jmp_buf |
50 | + /** | ||
51 | + for example, the following is show the jmp_buf when setjmp: | ||
52 | + (gdb) x /64xb env_func1[0].__jmpbuf | ||
53 | + 0x600ca0 <env_func1>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | ||
54 | + 0x600ca8 <env_func1+8>: 0xf8 0xc1 0x71 0xe5 0xa8 0x88 0xb4 0x15 | ||
55 | + 0x600cb0 <env_func1+16>: 0xa0 0x05 0x40 0x00 0x00 0x00 0x00 0x00 | ||
56 | + 0x600cb8 <env_func1+24>: 0x90 0xe4 0xff 0xff 0xff 0x7f 0x00 0x00 | ||
57 | + 0x600cc0 <env_func1+32>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | ||
58 | + 0x600cc8 <env_func1+40>: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | ||
59 | + 0x600cd0 <env_func1+48>: 0xf8 0xc1 0x51 0xe5 0xa8 0x88 0xb4 0x15 | ||
60 | + 0x600cd8 <env_func1+56>: 0xf8 0xc1 0xd9 0x2f 0xd7 0x77 0x4b 0xea | ||
61 | + (gdb) p /x $sp | ||
62 | + $4 = 0x7fffffffe380 | ||
63 | + we cannot finger the sp out. | ||
64 | + where the glibc is 2.12. | ||
65 | + */ | ||
50 | register long int rsp0 asm("rsp"); | 66 | register long int rsp0 asm("rsp"); |
51 | 67 | ||
52 | int ret = setjmp(env_func1); | 68 | int ret = setjmp(env_func1); |
@@ -124,7 +124,7 @@ $(SRS): $(OBJS) | @@ -124,7 +124,7 @@ $(SRS): $(OBJS) | ||
124 | $(TARGETDIR)/md.o: md.S | 124 | $(TARGETDIR)/md.o: md.S |
125 | $(CC) $(CFLAGS) -c $< -o $@ | 125 | $(CC) $(CFLAGS) -c $< -o $@ |
126 | 126 | ||
127 | -$(TARGETDIR)/%.o: %.c common.h md.h | 127 | +$(TARGETDIR)/%.o: %.c common.h md.h Makefile |
128 | $(CC) $(CFLAGS) -c $< -o $@ | 128 | $(CC) $(CFLAGS) -c $< -o $@ |
129 | 129 | ||
130 | clean: | 130 | clean: |
-
请 注册 或 登录 后发表评论