03-08-2025 07:40 PM - edited 03-08-2025 08:10 PM
Hi,
In the same vein as my previous topic: https://forums.ni.com/t5/LabVIEW/Crash-when-undoing-a-TabControl-replace/m-p/4426977
This time, just replacing a TabControl using GObject method "Replace No Attributes" is enough to crash LabVIEW.
I have tested by providing both inputs (either "Style" or "Path"), with LV2020 SP1 (32bit), LV2021 SP1 (32bit) and LV2023 Q3 (64bit).
LabVIEW message:
Crash report:
e:\builds\penguin\labview\branches\2020\dev\source\panel\datamgr.cpp(1487) : DAbort 0xAC04EE80: replace should have set typeChanged?
Here is the (very) minimal script to reproduce the crash:
I am currently coding a scripting tool that helps customizing GUIs by replacing existing controls by new ones, and a bug like this is potentially a showstopper for TabControls.
This is surprising because it works like a charm for clusters, which are much more complex data structures to replace, especially when initial and final data types don't match.
The only other way I can think of is way more complicated:
1. Create (from path) a new TabControl on the target VI;
2. Position it where there is the current TabControl (control on the FP and terminal on the BD);
3. Disconnect the current and reconnect the new terminal on the BD and potentially the connector pane;
4. Get a list of all static links to the current TabControl (references, property nodes, invoke nodes, locals, event structure cases), disconnect those links and reconnect them to the new TabControl.
5. Get a list of all contained controls and decorations by page and move them to the new TabControl;
6. Finally remove the old TabControl...
A huge amount of work compared to just calling a single method...
Regards,
Raphaël.
03-09-2025 05:25 PM
I've reported this issue to LabVIEW R&D as Bug 3045969.
I was able to reproduce it LabVIEW 2025 Q1 Patch 1 as well.