xref: /netbsd-src/external/gpl3/gcc/dist/libbacktrace/unknown.c (revision b1e838363e3c6fc78a55519254d99869742dd33c)
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