我用 cygwin gcc 构建了一个名为 DatalogTest.exe 的 exe。
当我尝试运行这个 (./DatalogText.exe) 时,我只是挂起。我不能用 Ctrl-C 杀死它,用 Ctrl-Z 挂起它或通过在另一个 shell 中执行 kill -9 来杀死它。
strace 给出这个输出,然后它挂起:
$ strace DatalogTest.exe
1 1 [main] DatalogTest (94016) **********************************************
71 72 [main] DatalogTest (94016) Program name: C:\Project\hpj_main_LFC\ControlMicro\ServiceLayer\Datalog\Test\DatalogTest.exe (windows pid 94016)
51 123 [main] DatalogTest (94016) OS version: Windows NT-6.1
24 147 [main] DatalogTest (94016) **********************************************
427 574 [main] DatalogTest (94016) sigprocmask: 0 = sigprocmask (0, 0x6123E468, 0x610FCAB0)
309 883 [main] DatalogTest 94016 open_shared: name shared.5, n 5, shared 0x60FF0000 (wanted 0x60FF0000), h 0x8C, *m 6
66 949 [main] DatalogTest 94016 heap_init: heap base 0x80000000, heap top 0x80000000, heap size 0x18000000 (402653184)
38 987 [main] DatalogTest 94016 open_shared: name S-1-5-21-1408293143-2956554002-1949004742-1377.1, n 1, shared 0x60FE0000 (wanted 0x60FE0000), h 0x88, *m 6
35 1022 [main] DatalogTest 94016 user_info::create: opening user shared for 'S-1-5-21-1408293143-2956554002-1949004742-1377' at 0x60FE0000
35 1057 [main] DatalogTest 94016 user_info::create: user shared version 6467403B
54 1111 [main] DatalogTest 94016 fhandler_pipe::create: name \\.\pipe\cygwin-c5e39b7a9d22bafb-94016-sigwait, size 164, mode PIPE_TYPE_MESSAGE
49 1160 [main] DatalogTest 94016 fhandler_pipe::create: pipe read handle 0xA0
18 1178 [main] DatalogTest 94016 fhandler_pipe::create: CreateFile: name \\.\pipe\cygwin-c5e39b7a9d22bafb-94016-sigwait
33 1211 [main] DatalogTest 94016 fhandler_pipe::create: pipe write handle 0xA4
43 1254 [main] DatalogTest 94016 dll_crt0_0: finished dll_crt0_0 initialization
387 1641 [main] DatalogTest 94016 mount_info::conv_to_posix_path: conv_to_posix_path (C:\Project\hpj_main_LFC\ControlMicro\ServiceLayer\Datalog\Test, no-keep-rel, no-add-slash)
31 1672 [main] DatalogTest 94016 normalize_win32_path: C:\Project\hpj_main_LFC\ControlMicro\ServiceLayer\Datalog\Test = normalize_win32_path (C:\Project\hpj_main_LFC\ControlMicro\ServiceLayer\Datalog\Test)
20 1692 [main] DatalogTest 94016 mount_info::conv_to_posix_path: /cygdrive/c/Project/hpj_main_LFC/ControlMicro/ServiceLayer/Datalog/Test = conv_to_posix_path (C:\Project\hpj_main_LFC\ControlMicro\ServiceLayer\Datalog\Test)
118 1810 [sig] DatalogTest 94016 wait_sig: entering ReadFile loop, my_readsig 0xA0, my_sendsig 0xA4
该构建适用于另一台机器。
这里是 strace 输出:
3531 3531 [main] DatalogTest (2868) **********************************************
100 3631 [main] DatalogTest (2868) Program name: C:\Jenkins-workspace\Lodam\Embedded\LFC\ControlMicro\ServiceLayer\Datalog\Test\DatalogTest.exe (windows pid 2868)
46 3677 [main] DatalogTest (2868) OS version: Windows NT-6.1
38 3715 [main] DatalogTest (2868) **********************************************
383 4098 [main] DatalogTest (2868) sigprocmask: 0 = sigprocmask (0, 0x6123D468, 0x610FBA10)
303 4401 [main] DatalogTest 2868 open_shared: name shared.5, n 5, shared 0x60FF0000 (wanted 0x60FF0000), h 0x80, *m 6
64 4465 [main] DatalogTest 2868 heap_init: heap base 0x80000000, heap top 0x80000000, heap size 0x18000000 (402653184)
66 4531 [main] DatalogTest 2868 open_shared: name S-1-5-21-1408293143-2956554002-1949004742-2274.1, n 1, shared 0x60FE0000 (wanted 0x60FE0000), h 0x78, *m 6
46 4577 [main] DatalogTest 2868 user_info::create: opening user shared for 'S-1-5-21-1408293143-2956554002-1949004742-2274' at 0x60FE0000
44 4621 [main] DatalogTest 2868 user_info::create: user shared version 6467403B
71 4692 [main] DatalogTest 2868 fhandler_pipe::create: name \\.\pipe\cygwin-c5e39b7a9d22bafb-2868-sigwait, size 164, mode PIPE_TYPE_MESSAGE
283 4975 [main] DatalogTest 2868 fhandler_pipe::create: pipe read handle 0x94
67 5042 [main] DatalogTest 2868 fhandler_pipe::create: CreateFile: name \\.\pipe\cygwin-c5e39b7a9d22bafb-2868-sigwait
184 5226 [main] DatalogTest 2868 fhandler_pipe::create: pipe write handle 0x98
62 5288 [main] DatalogTest 2868 dll_crt0_0: finished dll_crt0_0 initialization
654 5942 [sig] DatalogTest 2868 wait_sig: entering ReadFile loop, my_readsig 0x94, my_sendsig 0x98
180 6122 [main] DatalogTest 2868 mount_info::conv_to_posix_path: conv_to_posix_path (C:\Jenkins-workspace\Lodam\Embedded\LFC\ControlMicro\ServiceLayer\Datalog\Test, no-keep-rel, no-add-slash)
83 6205 [main] DatalogTest 2868 normalize_win32_path: C:\Jenkins-workspace\Lodam\Embedded\LFC\ControlMicro\ServiceLayer\Datalog\Test = normalize_win32_path (C:\Jenkins-workspace\Lodam\Embedded\LFC\ControlMicro\ServiceLayer\Datalog\Test)
52 6257 [main] DatalogTest 2868 mount_info::conv_to_posix_path: /cygdrive/c/Jenkins-workspace/Lodam/Embedded/LFC/ControlMicro/ServiceLayer/Datalog/Test = conv_to_posix_path (C:\Jenkins-workspace\Lodam\Embedded\LFC\ControlMicro\ServiceLayer\Datalog\Test)
83 6340 [main] DatalogTest 2868 sigprocmask: 0 = sigprocmask (0, 0x800180A8, 0x610FBA10)
202 6542 [main] DatalogTest 2868 _cygwin_istext_for_stdio: fd 0: not open
46 6588 [main] DatalogTest 2868 _cygwin_istext_for_stdio: fd 1: not open
40 6628 [main] DatalogTest 2868 _cygwin_istext_for_stdio: fd 2: not open
136 6764 [main] DatalogTest (2868) open_shared: name cygpid.2868, n 2868, shared 0x60FD0000 (wanted 0x60FD0000), h 0xC0, *m 2
57 6821 [main] DatalogTest 2868 pinfo::thisproc: myself dwProcessId 2868
42 6863 [main] DatalogTest 2868 time: 1370262553 = time(0)
2768 9631 [main] DatalogTest 2868 environ_init: GetEnvironmentStrings returned 0xCE4D48
87 9718 [main] DatalogTest 2868 environ_init: 0x80028290: !::=::\
77 9795 [main] DatalogTest 2868 environ_init: 0x800282A0: ALLUSERSPROFILE=C:\ProgramData
等等
在两台机器上:
$ gcc --version gcc (GCC) 4.5.3
在挂机的机器上:
uname -r 1.7.18(0.263/5/3)
Windows 版本:Windows 7 专业版,Service Pack 1
在其他机器上:
$ uname -r 1.7.18(0.263/5/3)
Windows Server 2008 R2 企业版,Service Pack 1