Begin forwarded message:

> From: Jon Shier <j...@jonshier.com>
> Subject: Re: [swift-users] intercept fatalError() or other termination 
> messages from swift?
> Date: June 26, 2017 at 12:30:50 PM PDT
> To: David Baraff <davidbar...@gmail.com>
> Cc: Joe Groff <jgr...@apple.com>, swift-users <swift-users@swift.org>
> 
> If you export the crash from Xcode, do you see the string in the raw report?

No.

> 
> 
> 
> Jon
> 
>> On Jun 26, 2017, at 3:22 PM, David Baraff via swift-users 
>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>> 
>> To be very clear, i’m concerned about iOS not mac os x.  I pulled up a crash 
>> report using xcode tools, and saw no mention of the string output by fatal 
>> error.  If there is someway after the fact of, on an iPhone or iOS 
>> interogating the asl_log when you restart your program to glean the error 
>> message, i’m all ears.
>> 
>> 
>>> On Jun 26, 2017, at 10:01 AM, Joe Groff <jgr...@apple.com 
>>> <mailto:jgr...@apple.com>> wrote:
>>> 
>>> 
>>>> On Jun 23, 2017, at 9:13 PM, David Baraff via swift-users 
>>>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>>>> 
>>>> I realize this is slightly centric to iOS, but it irks me that both 
>>>> Apple’s crash report logs and popular platforms like PLCrashReporter can 
>>>> do the hard stuff like give you a stack trace, but are *completely* unable 
>>>> to display the error message from terminating a program via fatalError(), 
>>>> or the error message from, e.g. dying with a bad optional.
>>>> 
>>>> Is there *any* to intercept the error messages that from fatalError() and 
>>>> similar like things in swift (bad optionals, invalid array accesses, 
>>>> assertions)?  I would think that some sort of a “hook” into these standard 
>>>> error routines would be a good thing.
>>>> 
>>>> In my case, if I could simply save that darn error string in a file, i 
>>>> could pick it up when the app next launches and report it along with the 
>>>> rest of the info like the stack/signal, etc.
>>>> 
>>>> I’ve been looking through the code in stdlib/public/runtime/Errors.cpp but 
>>>> haven’t found anything promising that lets me jump in there.  In my code, 
>>>> I’m likely to write things like
>>>>    guard let x = … else {
>>>>            fatalError(“Data type has payload <T> but is hooked to UI 
>>>> control with intrinsic type <U>”)
>>>>    }
>>>> 
>>>> and having that exact string tells me precisely what’s going, far simpler 
>>>> than a stack trace.
>>> 
>>> 
>>> Fatal error messages already get logged three ways:
>>> 
>>> - Printed to the process's stderr;
>>> - Logged to the system log using asl_log;
>>> - Set as the crash reason for CrashReporter.
>>> 
>>> The crash messages should thus already be in your crash reports somewhere. 
>>> See 
>>> https://github.com/jckarter/swift/blob/master/stdlib/public/runtime/Errors.cpp#L168
>>>  
>>> <https://github.com/jckarter/swift/blob/master/stdlib/public/runtime/Errors.cpp#L168>
>>>  and 
>>> https://github.com/jckarter/swift/blob/master/stdlib/public/runtime/Errors.cpp#L204
>>>  
>>> <https://github.com/jckarter/swift/blob/master/stdlib/public/runtime/Errors.cpp#L204>
>>>  for the relevant runtime source code. cc'ing Greg Parker who probably 
>>> knows better exactly where these messages end up.
>>> 
>>> -Joe
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org <mailto:swift-users@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to