gstreamer/subprojects/gst-devtools/validate
Piotr Brzeziński 2cc30770cf tools: Disable fault signal handlers in gst-launch/gst-validate on macOS
By default, macOS attempts to run lldb against a misbehaving process to handle the crash. This does not play well
with the SISEGV/SIGQUIT handler we add in gst-launch/gst-validate. The 'spinning' mechanism causes the lldb
and debugserver processes ran by macOS to misbehave, taking 100% CPU and rendering both themselves and the GStreamer
instance frozen and very hard to effectively kill. macOS's Activity Monitor is also unusable while this is happening.

This patch takes the quickest possible solution of just disabling those signal handlers entirely on macOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5190>
2023-08-16 08:52:36 +00:00
..
data devenv: Add some missing GStreamer specific env variables 2022-02-25 20:35:26 +00:00
docs Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
gst tools: Disable fault signal handlers in gst-launch/gst-validate on macOS 2023-08-16 08:52:36 +00:00
gst-libs validate: drop use of GSlice allocator 2023-02-03 17:48:10 +00:00
launcher validate-launcher: Fix race condition on repeated tests 2023-08-13 03:18:50 +00:00
plugins validate: disable plugins in static build 2023-05-31 15:17:11 +00:00
tests meson: Always use forward slashes in defines with paths 2023-07-12 21:17:25 +00:00
tools gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
.gitignore Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
COPYING Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
meson.build Fix API visibility macros 2022-12-20 14:03:35 +00:00
README Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00

== Gst-Validate

The goal of GstValidate is to be able to detect when elements are not
behaving as expected and report it to the user so he knows how things
are supposed to work inside a GstPipeline. In the end, fixing issues
found by the tool will ensure that all elements behave all together in
the expected way.

The easiest way of using GstValidate is to use one of its command-line
tools, located at tools/ directory. It is also possible to monitor
GstPipelines from any application by using the LD_PRELOAD gstvalidate
lib. The third way of using it is to write your own application that
links and uses libgstvalidate.

== BUILDING

Getting the code:

Releases are available at <URL>, download and extract the tarball. If you
want to use latest git version, do:

git clone <URI>

After cloning or extracting from a tarball, enter the gst-validate directory:

cd gst-validate

Build with:

meson build --prefix=<installation-prefix>
ninja -C build
sudo ninja -C build install (only if you want to install it)

Replace <installation-prefix> with your desired installation path, you can omit
the --prefix argument if you aren't going to install it or if you want the
default /usr/local. It is possible to use gst-validate CLI tools without
installation.

== INSTRUCTIONS

If you are looking for informations on how to use gst-validate -> docs/validate-usage.txt
If you are looking for informations on gst-validate design -> docs/validate-design.txt