digitalmars.D.learn - Mac OS crash, details inside...
- Gary Willoughby (227/227) Jun 13 2013 I get a program crash each time running the following code on
- Jacob Carlborg (7/49) Jun 14 2013 You do know that you usually don't have a /home/ directory on Mac OS X?
- Gary Willoughby (6/10) Jun 14 2013 That's the problem i can't pin down. It writes the above log file
- Gary Willoughby (4/4) Jun 14 2013 In fact i have the same problem reading files too. It only reads
- Sean Kelly (5/6) Jun 17 2013 up to a certain amount of bytes then crashes in the same manner =
- Gary Willoughby (2/3) Jun 17 2013 By running the above code. All the code before opening the file
I get a program crash each time running the following code on
MacOS 10.8 (Lion). It seems to run ok on Ubuntu 12.04:
import core.sys.posix.sys.stat;
import core.sys.posix.unistd;
import std.c.stdio;
import std.c.stdlib;
import std.process;
import std.stdio;
import std.string;
import std.file;
int main(string[] args)
{
pid_t pid, sid;
pid = fork();
if (pid < 0)
{
exit(EXIT_FAILURE);
}
if (pid > 0)
{
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0)
{
exit(EXIT_FAILURE);
}
if ((core.sys.posix.unistd.chdir("/")) < 0)
{
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
auto logFile = File("/home/gary/Desktop/test.log", "a");
logFile.writeln("Reading file");
string command = format("logger -t %s %s", "hello", "This is
a test");
executeShell(command);
logFile.writeln("Done");
return 0;
}
Crash log:
Process: main [1091]
Path: /private/tmp/*/main
Identifier: main
Version: 0
Code Type: X86-64 (Native)
Parent Process: ??? [1]
User ID: 501
Date/Time: 2013-06-13 18:34:59.413 +0100
OS Version: Mac OS X 10.8.4 (12E55)
Report Version: 10
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000010f70cb08
VM Regions Near 0x10f70cb08:
--> __TEXT 000000010f6ea000-000000010f7a9000 [
764K] r-x/rwx SM=COW /tmp/*
__DATA 000000010f7a9000-000000010f813000 [
424K] rw-/rwx SM=COW /tmp/*
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 main 0x000000010f795e94
D3std5stdio4File6detachMFZv + 32
1 main 0x000000010f795b91
D3std5stdio4File6__dtorMFZv + 13
2 main 0x000000010f796999
D3std5stdio4File7ByChunk11__fieldDtorMFZv + 13
3 main 0x000000010f6ec172
D3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6ConfigmZS3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6Con
igmZ13ProcessOutput
+ 466
4 main 0x000000010f78fd39
D3std7process12executeShellFNeAyaxHAyaAyaE3std7process6ConfigmZS3std7process133__T11executeImplS108_D3std7process9pipeShellFNfAyaE3std7process8RedirectxHAyaAyaE3std7process6ConfigZS3std7process12ProcessPipesTAyaZ11executeImplFAyaxHAyaAyaE3std7process6Con
igmZ13ProcessOutput
+ 49
5 main 0x000000010f6eb279 _Dmain +
317
6 main 0x000000010f76b759
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7runMainMFZv + 33
7 main 0x000000010f76b2a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7tryExecMFMDFZvZv + 45
8 main 0x000000010f76b7a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi6runAllMFZv + 61
9 main 0x000000010f76b2a5
D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7tryExecMFMDFZvZv + 45
10 main 0x000000010f76b259
_d_run_main + 457
11 main 0x000000010f76b088 main + 20
12 libdyld.dylib 0x00007fff8d8147e1 start + 1
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x000000010f70cb00 rbx: 0x000000010f6ec166 rcx:
0x000000010f70cb08 rdx: 0x00007fa32b403bd0
rdi: 0x00007fff50515680 rsi: 0x0000000000000030 rbp:
0x00007fff50514d20 rsp: 0x00007fff50514d10
r8: 0x000000010f8110f0 r9: 0x000000010f8123e0 r10:
0x00000000000003b0 r11: 0x0000000000000206
r12: 0x00007fa32b4039a0 r13: 0x00007fa32b4039c0 r14:
0x0000000000000002 r15: 0x0000000000000001
rip: 0x000000010f795e94 rfl: 0x0000000000010206 cr2:
0x000000010f70cb08
Logical CPU: 1
Binary Images:
0x10f6ea000 - 0x10f7a8ff7 +main (0)
<E2E209E1-8709-3E23-9D99-C6001D1DB254> /tmp/*/main
0x7fff6f2ea000 - 0x7fff6f31e93f dyld (210.2.3)
<6900F2BA-DB48-3B78-B668-58FC0CF6BCB8> /usr/lib/dyld
0x7fff8c796000 - 0x7fff8c7bbff7 libc++abi.dylib (26)
<D86169F3-9F31-377A-9AF3-DB17142052E4> /usr/lib/libc++abi.dylib
0x7fff8c9a2000 - 0x7fff8c9a8ff7 libunwind.dylib (35.1)
<21703D36-2DAB-3D8B-8442-EAAB23C060D3>
/usr/lib/system/libunwind.dylib
0x7fff8cb46000 - 0x7fff8cb7cfff libsystem_info.dylib
(406.17) <4FFCA242-7F04-365F-87A6-D4EFB89503C1>
/usr/lib/system/libsystem_info.dylib
0x7fff8d812000 - 0x7fff8d815ff7 libdyld.dylib (210.2.3)
<F59367C9-C110-382B-A695-9035A6DD387E>
/usr/lib/system/libdyld.dylib
0x7fff8db35000 - 0x7fff8db3bfff libmacho.dylib (829)
<BF332AD9-E89F-387E-92A4-6E1AB74BD4D9>
/usr/lib/system/libmacho.dylib
0x7fff8dc48000 - 0x7fff8dc4dfff libcache.dylib (57)
<65187C6E-3FBF-3EB8-A1AA-389445E2984D>
/usr/lib/system/libcache.dylib
0x7fff8e2cd000 - 0x7fff8e2cfff7 libunc.dylib (25)
<92805328-CD36-34FF-9436-571AB0485072>
/usr/lib/system/libunc.dylib
0x7fff8ea69000 - 0x7fff8ea6afff libsystem_blocks.dylib
(59) <D92DCBC3-541C-37BD-AADE-ACC75A0C59C8>
/usr/lib/system/libsystem_blocks.dylib
0x7fff8ea6b000 - 0x7fff8ea6cff7 libdnsinfo.dylib
(453.19) <14202FFB-C3CA-3FCC-94B0-14611BF8692D>
/usr/lib/system/libdnsinfo.dylib
0x7fff8f414000 - 0x7fff8f41cff7 libsystem_dnssd.dylib
(379.38.1) <BDCB8566-0189-34C0-9634-35ABD3EFE25B>
/usr/lib/system/libsystem_dnssd.dylib
0x7fff906bb000 - 0x7fff906c3fff liblaunch.dylib
(442.26.2) <2F71CAF8-6524-329E-AC56-C506658B4C0C>
/usr/lib/system/liblaunch.dylib
0x7fff91088000 - 0x7fff91089fff
libDiagnosticMessagesClient.dylib (8)
<8548E0DC-0D2F-30B6-B045-FE8A038E76D8>
/usr/lib/libDiagnosticMessagesClient.dylib
0x7fff927a3000 - 0x7fff927efff7 libauto.dylib (185.4)
<AD5A4CE7-CB53-313C-9FAE-673303CC2D35> /usr/lib/libauto.dylib
0x7fff92a95000 - 0x7fff92a9afff libcompiler_rt.dylib
(30) <08F8731D-5961-39F1-AD00-4590321D24A9>
/usr/lib/system/libcompiler_rt.dylib
0x7fff93016000 - 0x7fff93024ff7 libsystem_network.dylib
(77.10) <0D99F24E-56FE-380F-B81B-4A4C630EE587>
/usr/lib/system/libsystem_network.dylib
0x7fff93588000 - 0x7fff9358afff libquarantine.dylib
(52.1) <143B726E-DF47-37A8-90AA-F059CFD1A2E4>
/usr/lib/system/libquarantine.dylib
0x7fff9362c000 - 0x7fff9364eff7 libxpc.dylib (140.43)
<70BC645B-6952-3264-930C-C835010CCEF9>
/usr/lib/system/libxpc.dylib
0x7fff939a0000 - 0x7fff939a1ff7 libSystem.B.dylib
(169.3) <FF25248A-574C-32DB-952F-B948C389B2A4>
/usr/lib/libSystem.B.dylib
0x7fff94e00000 - 0x7fff94f1892f libobjc.A.dylib (532.2)
<90D31928-F48D-3E37-874F-220A51FD9E37> /usr/lib/libobjc.A.dylib
0x7fff9523b000 - 0x7fff9523bfff libkeymgr.dylib (25)
<CC9E3394-BE16-397F-926B-E579B60EE429>
/usr/lib/system/libkeymgr.dylib
0x7fff957b5000 - 0x7fff957c3fff libcommonCrypto.dylib
(60027) <BAAFE0C9-BB86-3CA7-88C0-E3CBA98DA06F>
/usr/lib/system/libcommonCrypto.dylib
0x7fff957d2000 - 0x7fff957edff7 libsystem_kernel.dylib
(2050.24.15) <A9F97289-7985-31D6-AF89-151830684461>
/usr/lib/system/libsystem_kernel.dylib
0x7fff9595a000 - 0x7fff95a26ff7 libsystem_c.dylib
(825.26) <4C9EB006-FE1F-3F8F-8074-DFD94CF2CE7B>
/usr/lib/system/libsystem_c.dylib
0x7fff960e1000 - 0x7fff960e2ff7 libremovefile.dylib
(23.2) <6763BC8E-18B8-3AD9-8FFA-B43713A7264F>
/usr/lib/system/libremovefile.dylib
0x7fff969c7000 - 0x7fff969c8ff7 libsystem_sandbox.dylib
(220.3) <B739DA63-B675-387A-AD84-412A651143C0>
/usr/lib/system/libsystem_sandbox.dylib
0x7fff969c9000 - 0x7fff969f7ff7 libsystem_m.dylib
(3022.6) <B434BE5C-25AB-3EBD-BAA7-5304B34E3441>
/usr/lib/system/libsystem_m.dylib
0x7fff96f04000 - 0x7fff96f19ff7 libdispatch.dylib
(228.23) <D26996BF-FC57-39EB-8829-F63585561E09>
/usr/lib/system/libdispatch.dylib
0x7fff96f47000 - 0x7fff96f96ff7 libcorecrypto.dylib
(106.2) <CE0C29A3-C420-339B-ADAA-52F4683233CC>
/usr/lib/system/libcorecrypto.dylib
0x7fff9720a000 - 0x7fff97272ff7 libc++.1.dylib (65.1)
<20E31B90-19B9-3C2A-A9EB-474E08F9FE05> /usr/lib/libc++.1.dylib
0x7fff975e9000 - 0x7fff975f0fff libcopyfile.dylib (89)
<876573D0-E907-3566-A108-577EAD1B6182>
/usr/lib/system/libcopyfile.dylib
0x7fff975fd000 - 0x7fff97608fff libsystem_notify.dylib
(98.5) <C49275CC-835A-3207-AFBA-8C01374927B6>
/usr/lib/system/libsystem_notify.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 196
thread_create: 1
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=58.9M resident=90.5M(154%)
swapped_out_or_unallocated=16777216.0T(29874624397312%)
Writable regions: Total=18.4M written=44K(0%) resident=212K(1%)
swapped_out=0K(0%) unallocated=18.2M(99%)
REGION TYPE VIRTUAL
=========== =======
MALLOC 9396K
MALLOC guard page 16K
STACK GUARD 56.0M
Stack 8192K
VM_ALLOCATE 1024K
__DATA 1020K
__LINKEDIT 53.6M
__TEXT 5416K
shared memory 12K
=========== =======
TOTAL 134.1M
Jun 13 2013
On 2013-06-13 19:42, Gary Willoughby wrote:
I get a program crash each time running the following code on MacOS 10.8
(Lion). It seems to run ok on Ubuntu 12.04:
import core.sys.posix.sys.stat;
import core.sys.posix.unistd;
import std.c.stdio;
import std.c.stdlib;
import std.process;
import std.stdio;
import std.string;
import std.file;
int main(string[] args)
{
pid_t pid, sid;
pid = fork();
if (pid < 0)
{
exit(EXIT_FAILURE);
}
if (pid > 0)
{
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0)
{
exit(EXIT_FAILURE);
}
if ((core.sys.posix.unistd.chdir("/")) < 0)
{
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
auto logFile = File("/home/gary/Desktop/test.log", "a");
logFile.writeln("Reading file");
string command = format("logger -t %s %s", "hello", "This is a test");
executeShell(command);
logFile.writeln("Done");
return 0;
}
You do know that you usually don't have a /home/ directory on Mac OS X?
On Mac OS X it's called /Users/.
BTW, running that on Mac OS X 10.6.3 does not cause a crash. Although it
doesn't seem to print or write anything.
--
/Jacob Carlborg
Jun 14 2013
You do know that you usually don't have a /home/ directory on Mac OS X? On Mac OS X it's called /Users/.Yeah, that was me running the same code on Ubuntu.BTW, running that on Mac OS X 10.6.3 does not cause a crash. Although it doesn't seem to print or write anything.That's the problem i can't pin down. It writes the above log file to /var/log/system.log. other than that there is no feedback at all, the program just ends without writing to the open file. It seems to be related to the daemon code as it doesn't happen when that code is commented out.
Jun 14 2013
In fact i have the same problem reading files too. It only reads files up to a certain amount of bytes then crashes in the same manner explained above. Again this only happens when the program runs as a daemon.
Jun 14 2013
On Jun 14, 2013, at 2:49 AM, Gary Willoughby <dev kalekold.net> wrote:In fact i have the same problem reading files too. It only reads files =up to a certain amount of bytes then crashes in the same manner = explained above. Again this only happens when the program runs as a = daemon. Run as a daemon how?=
Jun 17 2013
Run as a daemon how?By running the above code. All the code before opening the file causes the program to run as a daemon.
Jun 17 2013








"Gary Willoughby" <Dev kalekold.net>