4. 使用例 use IO::Socket::INET; sub baz { while (1) { my $sd = new IO::Socket::INET( PeerAddr => '10.1.0.0:80'); # ここで固まる sleep(1); } } sub bar { baz($_[0]); } sub foo { bar(35, 5.98, "xyz", @_); } foo("abc");
11. perl インタプリタインスタンスの取得 perl がスレッド付きでコンパイルされているとインタプリタが複数インスタンスに my_perl という名前なので、 C の呼出し履歴から探す スレッド無しのときはインタプリタがグローバルに定義されているので my_perl は不要 (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0xb7de2021 in connect () at ../sysdeps/unix/sysv/linux #2 0x0810f623 in Perl_pp_bind () at pp_sys.c:2475 #3 0x080ce533 in Perl_runops_standard () at run.c:41 #4 0x08073c40 in S_run_body ( my_perl=0x816b008 ) at perl.c #5 perl_run (my_perl=0x816b008) at perl.c:2252 #6 0x0805e99d in main (argc=2, argv=0xbf9fe104, env=0xbf9 (gdb) frame 4 #4 0x08073c40 in S_run_body (my_perl=0x816b008) at perl.c 2334 CALLRUNOPS(aTHX);