Blender V4.3
bpy_traceback.cc File Reference
#include <Python.h>
#include <frameobject.h>
#include "BLI_path_utils.hh"
#include "BLI_utildefines.h"
#include "bpy_traceback.hh"

Go to the source code of this file.

Macros

#define MAKE_PY_IDENTIFIER_EX(varname, value)   static _Py_Identifier varname{value, -1};
 
#define MAKE_PY_IDENTIFIER(varname)   MAKE_PY_IDENTIFIER_EX(PyId_##varname, #varname)
 

Functions

 MAKE_PY_IDENTIFIER (msg)
 
 MAKE_PY_IDENTIFIER (filename)
 
 MAKE_PY_IDENTIFIER (lineno)
 
 MAKE_PY_IDENTIFIER (offset)
 
 MAKE_PY_IDENTIFIER (end_lineno)
 
 MAKE_PY_IDENTIFIER (end_offset)
 
 MAKE_PY_IDENTIFIER (tb_lineno)
 
 MAKE_PY_IDENTIFIER (text)
 
static const char * traceback_filepath (PyTracebackObject *tb, PyObject **r_coerce)
 
static int traceback_line_number (PyTracebackObject *tb)
 
static int parse_syntax_error (PyObject *err, PyObject **message, PyObject **filename, int *lineno, int *offset, int *end_lineno, int *end_offset, PyObject **text)
 
bool python_script_error_jump (const char *filepath, int *r_lineno, int *r_offset, int *r_lineno_end, int *r_offset_end)
 

Detailed Description

This file contains utility functions for getting data from a python stack trace.

Definition in file bpy_traceback.cc.

Macro Definition Documentation

◆ MAKE_PY_IDENTIFIER

#define MAKE_PY_IDENTIFIER ( varname)    MAKE_PY_IDENTIFIER_EX(PyId_##varname, #varname)

Definition at line 24 of file bpy_traceback.cc.

◆ MAKE_PY_IDENTIFIER_EX

#define MAKE_PY_IDENTIFIER_EX ( varname,
value )   static _Py_Identifier varname{value, -1};

Definition at line 23 of file bpy_traceback.cc.

Function Documentation

◆ MAKE_PY_IDENTIFIER() [1/8]

MAKE_PY_IDENTIFIER ( end_lineno )

◆ MAKE_PY_IDENTIFIER() [2/8]

MAKE_PY_IDENTIFIER ( end_offset )

◆ MAKE_PY_IDENTIFIER() [3/8]

MAKE_PY_IDENTIFIER ( filename )

◆ MAKE_PY_IDENTIFIER() [4/8]

MAKE_PY_IDENTIFIER ( lineno )

◆ MAKE_PY_IDENTIFIER() [5/8]

MAKE_PY_IDENTIFIER ( msg )

◆ MAKE_PY_IDENTIFIER() [6/8]

MAKE_PY_IDENTIFIER ( offset )

◆ MAKE_PY_IDENTIFIER() [7/8]

MAKE_PY_IDENTIFIER ( tb_lineno )

◆ MAKE_PY_IDENTIFIER() [8/8]

MAKE_PY_IDENTIFIER ( text )

◆ parse_syntax_error()

static int parse_syntax_error ( PyObject * err,
PyObject ** message,
PyObject ** filename,
int * lineno,
int * offset,
int * end_lineno,
int * end_offset,
PyObject ** text )
static

Definition at line 72 of file bpy_traceback.cc.

References int, and v.

Referenced by python_script_error_jump().

◆ python_script_error_jump()

bool python_script_error_jump ( const char * filepath,
int * r_lineno,
int * r_offset,
int * r_lineno_end,
int * r_offset_end )

◆ traceback_filepath()

static const char * traceback_filepath ( PyTracebackObject * tb,
PyObject ** r_coerce )
static

Definition at line 36 of file bpy_traceback.cc.

Referenced by python_script_error_jump().

◆ traceback_line_number()

static int traceback_line_number ( PyTracebackObject * tb)
static

Return the line number from the trace-back, -1 on failure.

Definition at line 44 of file bpy_traceback.cc.

Referenced by python_script_error_jump().