148fb7bfaSmrg /* unknown.c -- used when backtrace configury does not know file format.
2*b1e83836Smrg Copyright (C) 2012-2022 Free Software Foundation, Inc.
348fb7bfaSmrg Written by Ian Lance Taylor, Google.
448fb7bfaSmrg
548fb7bfaSmrg Redistribution and use in source and binary forms, with or without
648fb7bfaSmrg modification, are permitted provided that the following conditions are
748fb7bfaSmrg met:
848fb7bfaSmrg
948fb7bfaSmrg (1) Redistributions of source code must retain the above copyright
1048fb7bfaSmrg notice, this list of conditions and the following disclaimer.
1148fb7bfaSmrg
1248fb7bfaSmrg (2) Redistributions in binary form must reproduce the above copyright
1348fb7bfaSmrg notice, this list of conditions and the following disclaimer in
1448fb7bfaSmrg the documentation and/or other materials provided with the
1548fb7bfaSmrg distribution.
1648fb7bfaSmrg
1748fb7bfaSmrg (3) The name of the author may not be used to
1848fb7bfaSmrg endorse or promote products derived from this software without
1948fb7bfaSmrg specific prior written permission.
2048fb7bfaSmrg
2148fb7bfaSmrg THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2248fb7bfaSmrg IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2348fb7bfaSmrg WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2448fb7bfaSmrg DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
2548fb7bfaSmrg INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2648fb7bfaSmrg (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2748fb7bfaSmrg SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2848fb7bfaSmrg HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2948fb7bfaSmrg STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
3048fb7bfaSmrg IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
3148fb7bfaSmrg POSSIBILITY OF SUCH DAMAGE. */
3248fb7bfaSmrg
3348fb7bfaSmrg #include "config.h"
3448fb7bfaSmrg
3548fb7bfaSmrg #include <sys/types.h>
3648fb7bfaSmrg
3748fb7bfaSmrg #include "backtrace.h"
3848fb7bfaSmrg #include "internal.h"
3948fb7bfaSmrg
4048fb7bfaSmrg /* A trivial routine that always fails to find fileline data. */
4148fb7bfaSmrg
4248fb7bfaSmrg static int
unknown_fileline(struct backtrace_state * state ATTRIBUTE_UNUSED,uintptr_t pc,backtrace_full_callback callback,backtrace_error_callback error_callback ATTRIBUTE_UNUSED,void * data)4348fb7bfaSmrg unknown_fileline (struct backtrace_state *state ATTRIBUTE_UNUSED,
4448fb7bfaSmrg uintptr_t pc, backtrace_full_callback callback,
4548fb7bfaSmrg backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
4648fb7bfaSmrg void *data)
4748fb7bfaSmrg
4848fb7bfaSmrg {
4948fb7bfaSmrg return callback (data, pc, NULL, 0, NULL);
5048fb7bfaSmrg }
5148fb7bfaSmrg
5248fb7bfaSmrg /* Initialize the backtrace data when we don't know how to read the
5348fb7bfaSmrg debug info. */
5448fb7bfaSmrg
5548fb7bfaSmrg int
backtrace_initialize(struct backtrace_state * state ATTRIBUTE_UNUSED,const char * filename ATTRIBUTE_UNUSED,int descriptor ATTRIBUTE_UNUSED,backtrace_error_callback error_callback ATTRIBUTE_UNUSED,void * data ATTRIBUTE_UNUSED,fileline * fileline_fn)5648fb7bfaSmrg backtrace_initialize (struct backtrace_state *state ATTRIBUTE_UNUSED,
57a3e9eb18Smrg const char *filename ATTRIBUTE_UNUSED,
5848fb7bfaSmrg int descriptor ATTRIBUTE_UNUSED,
5948fb7bfaSmrg backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
6048fb7bfaSmrg void *data ATTRIBUTE_UNUSED, fileline *fileline_fn)
6148fb7bfaSmrg {
6248fb7bfaSmrg state->fileline_data = NULL;
6348fb7bfaSmrg *fileline_fn = unknown_fileline;
6448fb7bfaSmrg return 1;
6548fb7bfaSmrg }
66