mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Use NSCAssert() in react_native_assert instead of C assert() (#36177)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36177 react_native_assert calls C `assert()`, where XCode does not have a built-in breakpoint navigator to hook to assertion failures (though you can add a symbolic breakpoint to "abort()" to get the effect). This changes the Apple implemented of `react_native_assert()` to use `NSCAssert` under the hood. This is safe to use in C functions, but will be trapped by the default XCode exceptions breakpoint navigator. Changelog: [iOS][Fixed] - Use NSCAssert() in react_native_assert instead of C assert() Reviewed By: cipolleschi Differential Revision: D43275024 fbshipit-source-id: 43c4e4f1ae6b99f32634d4b1880bce712c3ae8f6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
96b2ca4412
commit
c5bc3f1373
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include <android/log.h>
|
||||
#include <react/debug/react_native_assert.h>
|
||||
|
||||
#ifdef REACT_NATIVE_DEBUG
|
||||
|
||||
extern "C" void react_native_assert_fail(
|
||||
const char *func,
|
||||
const char *file,
|
||||
int line,
|
||||
const char *expr) {
|
||||
// Print as an error so it shows up in logcat before crash...
|
||||
__android_log_print(
|
||||
ANDROID_LOG_ERROR,
|
||||
"ReactNative",
|
||||
"%s:%d: function %s: assertion failed (%s)",
|
||||
file,
|
||||
line,
|
||||
func,
|
||||
expr);
|
||||
// ...and trigger an abort so it crashes and shows up in uploaded logs.
|
||||
__android_log_assert(
|
||||
nullptr,
|
||||
"ReactNative",
|
||||
"%s:%d: function %s: assertion failed (%s)",
|
||||
file,
|
||||
line,
|
||||
func,
|
||||
expr);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user