Skip to content

CreateDrillandMapFilesSet segfaults from Python API (regression)

Description

An invocation of CreateDrillandMapFilesSet from Python API results in a segfault. This behavior appeared on nightly released 20. 1. 2023, the same code has been working on nightly versions until this release.

Steps to reproduce

  1. Create the following script:
from pcbnew import *
import sys

board = LoadBoard(sys.argv[1])

drlwriter = EXCELLON_WRITER(board)
drlwriter.SetMapFileFormat(PLOT_FORMAT_PDF)

genDrl = True
genMap = True
drlwriter.CreateDrillandMapFilesSet(".", genDrl, genMap)
  1. Invoke it as python3 scrip.py board.kicad_pcb
  2. Observe segfault

KiCad Version

Application: KiCad PCB Editor x86_64 on x86_64

Version: 7.0.0-rc1-unknown-89d434255c~164~ubuntu20.04.1, release build

Libraries:
	wxWidgets 3.2.1
	FreeType 2.10.1
	HarfBuzz 2.6.4
	FontConfig 2.13.1
	libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3

Platform: Ubuntu 20.04.5 LTS, 64 bit, Little endian, wxGTK, regolith, x11

Build Info:
	Date: Jan 20 2023 20:33:07
	wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.71.0
	OCC: 7.5.2
	Curl: 7.68.0
	ngspice: 38
	Compiler: GCC 9.4.0 with C++ ABI 1013

Build settings:
	KICAD_USE_EGL=ON
	KICAD_SPICE=ON