aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/backtrace/backtrace.c
diff options
context:
space:
mode:
authormax42 <max42@yandex-team.com>2023-06-30 11:13:34 +0300
committermax42 <max42@yandex-team.com>2023-06-30 11:13:34 +0300
commit3e1899838408bbad47622007aa382bc8a2b01f87 (patch)
tree0f21c1e6add187ddb6c3ccc048a7d640ce03fb87 /contrib/libs/backtrace/backtrace.c
parent5463eb3f5e72a86f858a3d27c886470a724ede34 (diff)
downloadydb-3e1899838408bbad47622007aa382bc8a2b01f87.tar.gz
Revert "YT-19324: move YT provider to ydb/library/yql"
This reverts commit ca272f12fdd0e8d5c3e957fc87939148f1caaf72, reversing changes made to 49f8acfc8b0b5c0071b804423bcf53fda26c7c12.
Diffstat (limited to 'contrib/libs/backtrace/backtrace.c')
-rw-r--r--contrib/libs/backtrace/backtrace.c129
1 files changed, 0 insertions, 129 deletions
diff --git a/contrib/libs/backtrace/backtrace.c b/contrib/libs/backtrace/backtrace.c
deleted file mode 100644
index 7b62900852..0000000000
--- a/contrib/libs/backtrace/backtrace.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* backtrace.c -- Entry point for stack backtrace library.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Google.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- (1) Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- (2) Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- (3) The name of the author may not be used to
- endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE. */
-
-#include "config.h"
-
-#include <sys/types.h>
-
-#include "unwind.h"
-#include "backtrace.h"
-#include "internal.h"
-
-/* The main backtrace_full routine. */
-
-/* Data passed through _Unwind_Backtrace. */
-
-struct backtrace_data
-{
- /* Number of frames to skip. */
- int skip;
- /* Library state. */
- struct backtrace_state *state;
- /* Callback routine. */
- backtrace_full_callback callback;
- /* Error callback routine. */
- backtrace_error_callback error_callback;
- /* Data to pass to callback routines. */
- void *data;
- /* Value to return from backtrace_full. */
- int ret;
- /* Whether there is any memory available. */
- int can_alloc;
-};
-
-/* Unwind library callback routine. This is passed to
- _Unwind_Backtrace. */
-
-static _Unwind_Reason_Code
-unwind (struct _Unwind_Context *context, void *vdata)
-{
- struct backtrace_data *bdata = (struct backtrace_data *) vdata;
- uintptr_t pc;
- int ip_before_insn = 0;
-
-#ifdef HAVE_GETIPINFO
- pc = _Unwind_GetIPInfo (context, &ip_before_insn);
-#else
- pc = _Unwind_GetIP (context);
-#endif
-
- if (bdata->skip > 0)
- {
- --bdata->skip;
- return _URC_NO_REASON;
- }
-
- if (!ip_before_insn)
- --pc;
-
- if (!bdata->can_alloc)
- bdata->ret = bdata->callback (bdata->data, pc, NULL, 0, NULL);
- else
- bdata->ret = backtrace_pcinfo (bdata->state, pc, bdata->callback,
- bdata->error_callback, bdata->data);
- if (bdata->ret != 0)
- return _URC_END_OF_STACK;
-
- return _URC_NO_REASON;
-}
-
-/* Get a stack backtrace. */
-
-int __attribute__((noinline))
-backtrace_full (struct backtrace_state *state, int skip,
- backtrace_full_callback callback,
- backtrace_error_callback error_callback, void *data)
-{
- struct backtrace_data bdata;
- void *p;
-
- bdata.skip = skip + 1;
- bdata.state = state;
- bdata.callback = callback;
- bdata.error_callback = error_callback;
- bdata.data = data;
- bdata.ret = 0;
-
- /* If we can't allocate any memory at all, don't try to produce
- file/line information. */
- p = backtrace_alloc (state, 4096, NULL, NULL);
- if (p == NULL)
- bdata.can_alloc = 0;
- else
- {
- backtrace_free (state, p, 4096, NULL, NULL);
- bdata.can_alloc = 1;
- }
-
- _Unwind_Backtrace (unwind, &bdata);
- return bdata.ret;
-}