Segfault GTK4 on windows 10

33 views Asked by At

I'm developing some app with GTK 4 framework and catch odd behaviour:
I've created app, main window, some widgets. Everything worked while I didn't try add a GtkAlertDialog object. It works fine several times and then app fall with segfault. I've tryed to use ordinary window GtkAlertDialog instead. It works absolutely similarly.

I began to suspect graphic drivers (Intel HD 4000) and update it. No solution. Below I'm pasting code:

#include <gtk/gtk.h>
#include <stdint.h>
#include "gtk_ui.h"

static GtkWidget *window, *dialogWindow; 
static GtkWidget *btnUpload,*btnDownload, *btnRefresh, *btnSaveFile,*btnReadFile;
GtkWidget *mainbox;
static GtkWidget *cmbbxPortsList;
GtkWidget *button_grid;
static GtkStringList *listPorts;

void gtk_ui_activate (GtkApplication *app,
          gpointer        user_data)
{

    GtkWidget *mainbox;
    GtkWidget *PageLabels[MAX_NUM_PAGES];
    GtkWidget *lblCaption;
    GtkWidget *lblLimitMin, *lblLimitMax;

    window = gtk_application_window_new (app);
    gtk_window_set_title (GTK_WINDOW (window), "Window");
    mainbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
    gtk_window_set_child (GTK_WINDOW (window), mainbox);
        button_grid = gtk_grid_new();
    gtk_box_append (GTK_BOX (mainbox), button_grid);
    btnUpload = gtk_button_new_with_label(strUpload);
    btnDownload = gtk_button_new_with_label(strDownload);
    btnReadFile = gtk_button_new_with_label(strReadFile);
    btnSaveFile = gtk_button_new_with_label(strSaveFile);
    btnRefresh = gtk_button_new_with_label(strRefresh);
    listPorts = gtk_string_list_new(NULL);
    cmbbxPortsList = gtk_drop_down_new((GListModel*)(listPorts),NULL);
    g_signal_connect(btnRefresh,"clicked",G_CALLBACK (callbackRefreshListPort),NULL);
    g_signal_connect(btnUpload,"clicked",G_CALLBACK (callbackUploadData),NULL);
    g_signal_connect(btnDownload,"clicked",G_CALLBACK (callbackDownloadData),NULL);
        uint8_t ButtonYCounter = 0;
        gtk_grid_attach(GTK_GRID(button_grid),cmbbxPortsList,0,ButtonYCounter++,1,1);
    gtk_grid_attach(GTK_GRID(button_grid),btnRefresh,0,ButtonYCounter++,1,1);
    gtk_grid_attach(GTK_GRID(button_grid),btnUpload,0,ButtonYCounter++,1,1);
    gtk_grid_attach(GTK_GRID(button_grid),btnDownload,0,ButtonYCounter++,1,1);
    gtk_grid_attach(GTK_GRID(button_grid),btnReadFile,0,ButtonYCounter++,1,1);
    gtk_grid_attach(GTK_GRID(button_grid),btnSaveFile,0,ButtonYCounter++,1,1);

    gtk_window_present (GTK_WINDOW (window));

}
static void callbackUploadData(GtkWidget *widget, gpointer data)
{
    dialogWindow = gtk_window_new();
    gtk_window_set_modal(GTK_WINDOW(dialogWindow),TRUE);
    gtk_window_present(GTK_WINDOW(dialogWindow));
    //GtkAlertDialog* dialogWindow = gtk_alert_dialog_new("Error");
    //gtk_alert_dialog_set_message(dialogWindow,strSections[error_obj.section]);
    //gtk_alert_dialog_set_detail(dialogWindow,getErrorVerbose(error_obj.error));
}

int
main (int    argc,
      char **argv)
{
  GtkApplication *app;
  int status;

  app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
  g_signal_connect (app, "activate", G_CALLBACK (gtk_ui_activate), NULL);
  status = g_application_run (G_APPLICATION (app), argc, argv);
  g_object_unref (app);

  return status;
}

An error fo segfault: Thread 1 received signal SIGSEGV, Segmentation fault.

0x00007fffff267381 in ig7icd64!DrvSetLayerPaletteEntries () from C:\WINDOWS\SYSTEM32\ig7icd64.dll

I've tried to call from GtkAlertDialog, GtkWindow, udate drivers. Nothing to helps. I use msys2, gcc to develop in windows 10 and Eclipse CDT.

0

There are 0 answers