トップ «前の日記(2011-11-08) 最新 次の日記(2011-11-10)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|

2011-11-09 :-(

_ 午前

0500 起床

0830 出勤

0900 テスト準備

_ 午後

1300 テスト準備

1730 退勤

_

1800 買い物

1900 すぎやまこういち

2100 飯

_ 買い物

amazon

女の子の声を目指してみたら、日常生活がすごく捗った。 らしいので買ってみた。

4798029025

4894715899

_ 買い物

有隣堂 川崎BE

拡大画像はこちら

B005ZUT7FY

_ [Segmentation fault][SEGV][セグメンテーションフォールト]セグメンテーションフォールト

今週はバイナリアンになってるのでたまには手を動かしてみる。

CentOS で

% uname -a
Linux centos.area51.gr.jp 2.6.18-238.19.1.el5 #1 SMP Fri Jul 15 07:31:24 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

binary hacks に segv を拾う手段が紹介されていた。むしろ高林哲さんとこに本と同じ記事がある 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

記事と同じようにゼロ除算させてみたら Segmentation fault 扱いされなかった

% gcc segv.c && ./a.out
segv.c: In function ‘foo’:
segv.c:6: 警告: division by zero
浮動小数点演算例外です

のでヌルポさせてみる( ustackOnLinux - ログを取っている環境が i386だったり x86_64だったりするので、stackframeの addressの出方もまちまちだったりするが、 )

#include <stdio.h>

void foo(void)
{
  char* a = NULL;
  printf("%s\n", a);
}


int main(int ac, char** av)
{
  foo();
  return 0;
}

実行

% catchsegv ./a.out
*** Segmentation fault
Register dump:

 RAX: 0000000000000000   RBX: 00002b36b1492bc0   RCX: 0000000000000000
 RDX: 00007fffbd1e3dd8   RSI: 00007fffbd1e3dc8   RDI: 0000000000000000
 RBP: 0000000000000000   R8 : fefefefefefefeff   R9 : 00002b36b12837a0
 R10: 0000000000000000   R11: 00002b36b170d190   R12: 0000000000000000
 R13: 00007fffbd1e3dc0   R14: 0000000000000000   R15: 0000000000000000
 RSP: 00007fffbd1e3c88

 RIP: 00002b36b1723b80   EFLAGS: 00010246

 CS: 0033   FS: 0000   GS: 0000

 Trap: 0000000e   Error: 00000004   OldMask: 00000000   CR2: 00000000

Backtrace:
/lib64/libc.so.6(strlen+0x30)[0x2b36b1723b80]
/lib64/libc.so.6(_IO_puts+0x1b)[0x2b36b170d1ab]
??:0(foo)[0x4004b1]
??:0(main)[0x4004c7]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x2b36b16c7994]
??:0(_start)[0x4003e9]

Memory map:

00400000-00401000 r-xp 00000000 fd:00 326798 /home/rin/work/lang/c/a.out
00600000-00601000 rw-p 00000000 fd:00 326798 /home/rin/work/lang/c/a.out
1cb3b000-1cb60000 rw-p 1cb3b000 00:00 0 [heap]
3733c00000-3733c0d000 r-xp 00000000 fd:00 1695910 /lib64/libgcc_s-4.1.2-20080825.so.1
3733c0d000-3733e0d000 ---p 0000d000 fd:00 1695910 /lib64/libgcc_s-4.1.2-20080825.so.1
3733e0d000-3733e0e000 rw-p 0000d000 fd:00 1695910 /lib64/libgcc_s-4.1.2-20080825.so.1
2b36b1276000-2b36b1292000 r-xp 00000000 fd:00 1695621 /lib64/ld-2.5.so
2b36b1292000-2b36b1294000 rw-p 2b36b1292000 00:00 0
2b36b1492000-2b36b1493000 r--p 0001c000 fd:00 1695621 /lib64/ld-2.5.so
2b36b1493000-2b36b1494000 rw-p 0001d000 fd:00 1695621 /lib64/ld-2.5.so
2b36b1494000-2b36b1497000 r-xp 00000000 fd:00 1695625 /lib64/libSegFault.so
2b36b1497000-2b36b1697000 ---p 00003000 fd:00 1695625 /lib64/libSegFault.so
2b36b1697000-2b36b1698000 r--p 00003000 fd:00 1695625 /lib64/libSegFault.so
2b36b1698000-2b36b1699000 rw-p 00004000 fd:00 1695625 /lib64/libSegFault.so
2b36b16aa000-2b36b17f8000 r-xp 00000000 fd:00 1695620 /lib64/libc-2.5.so
2b36b17f8000-2b36b19f8000 ---p 0014e000 fd:00 1695620 /lib64/libc-2.5.so
2b36b19f8000-2b36b19fc000 r--p 0014e000 fd:00 1695620 /lib64/libc-2.5.so
2b36b19fc000-2b36b19fd000 rw-p 00152000 fd:00 1695620 /lib64/libc-2.5.so
2b36b19fd000-2b36b1a04000 rw-p 2b36b19fd000 00:00 0
7fffbd1d0000-7fffbd1e5000 rw-p 7ffffffe9000 00:00 0 [stack]
7fffbd1fc000-7fffbd200000 r-xp 7fffbd1fc000 00:00 0 [vdso]
ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0 [vsyscall]

4873112885

_ 楪いのりが天使すぎて生きているのがカラい

307-4e5d5.gif

( via 《11-1351》 ギルティクラウン 画像集:2:ディオの部屋:So-netブログ )