vala-stacktrace
vala-stacktrace copied to clipboard
Sometimes the stacktrace is worse than the one gdb returns
It is because nm returns the last line of functions that points to C file instead of vala.
For example:
void noise_library_remove_medias (NoiseLibrary* self, GeeCollection* toRemove, gboolean trash) {
#line 59 "/home/cran/Documents/Projects/elementary/noise/instant-beta/core/Library.vala"
g_return_if_fail (self != NULL);
#line 59 "/home/cran/Documents/Projects/elementary/noise/instant-beta/core/Library.vala"
NOISE_LIBRARY_GET_CLASS (self)->remove_medias (self, toRemove, trash);
#line 262 "Library.c"
}
The line 262
appears in the vala-stacktrace:
An error occured (SIGTRAP) in ../core/Media.vala, line 36 in 'noise_media_is_equal'
The reason is likely an uncaught error.
* #1 ../core/Media.vala line 36 in 'noise_media_is_equal'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/core/Media.vala:36
#2 ../src/CoreServicesImplementation.vala line 146 in 'noise_core_services_implementation_real_stop_playback_for_medias'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/CoreServicesImplementation.vala:146
#3 core/CoreServices.c line 473 in 'noise_core_services_stop_playback_for_medias'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/build/core/CoreServices.c:473
#4 ../plugins/SqliteLibrary/DataBase/MediaDao.vala line 260 in 'noise_media_dao_get_media'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/plugins/SqliteLibrary/DataBase/MediaDao.vala:260
#5 core/Library.c line 262 in 'noise_library_remove_medias'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/build/core/Library.c:262
#6 src/MusicListView.c line 3469 in '___lambda87_'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/build/src/MusicListView.c:3469
#7 src/MusicListView.c line 3476 in '____lambda87__noise_remove_files_dialog_remove_media'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/build/src/MusicListView.c:3476
#8 ../src/Dialogs/RemoveFilesDialog.vala line 118 in '__lambda85_'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/Dialogs/RemoveFilesDialog.vala:118
#9 src/RemoveFilesDialog.c line 164 in '___lambda85__gtk_button_clicked'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/build/src/RemoveFilesDialog.c:164
#10 ../src/main.vala line 43 in '_vala_main'
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/main.vala:43
#11 src/main.c line 196 in 'main'
gdb is smarter and returns the following stacktrace:
Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffbe48)
at /build/buildd/glib2.0-2.42.1/./glib/gmessages.c:1046
1046 /build/buildd/glib2.0-2.42.1/./glib/gmessages.c: No such file or directory.
(gdb) bt
#0 g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffbe48)
at /build/buildd/glib2.0-2.42.1/./glib/gmessages.c:1046
#1 0x00007ffff5581b32 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>)
at /build/buildd/glib2.0-2.42.1/./glib/gmessages.c:1079
#2 0x00007ffff4dc12c4 in noise_media_is_equal (self=0x7fffa8017970, media1=0x0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/core/Media.vala:36
#3 0x0000000000459e01 in noise_core_services_implementation_real_stop_playback_for_medias (base=0xa8e3a0, medias=0x14312d0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/CoreServicesImplementation.vala:146
#4 0x00007ffff4dbdcf7 in noise_core_services_stop_playback_for_medias (self=0xa8e3a0, medias=0x14312d0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/core/CoreServices.vala:52
#5 0x00007fffd7192104 in noise_sqlite_library_real_remove_medias (base=0x7fffe4004db0, medias=0x14312d0, trash=0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/plugins/SqliteLibrary/SqliteLibrary.vala:259
#6 0x00007ffff4dba700 in noise_library_remove_medias (self=0x7fffe4004db0, toRemove=0x14312d0, trash=0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/core/Library.vala:59
#7 0x00000000004e70ab in ___lambda87_ (_data24_=0x1788e80, delete_files=0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/Views/ListView/Lists/MusicListView.vala:488
#8 0x00000000004e70d1 in ____lambda87__noise_remove_files_dialog_remove_media (_sender=0x17f22b0, response=0, self=0x1788e80)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/Views/ListView/Lists/MusicListView.vala:487
#9 0x00007ffff58500a1 in g_cclosure_marshal_VOID__BOOLEANv (closure=<optimized out>, return_value=<optimized out>,
instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x1228f90)
at /build/buildd/glib2.0-2.42.1/./gobject/gmarshal.c:188
#10 0x00007ffff584e3f7 in _g_closure_invoke_va (closure=0x1721f20, return_value=0x0, instance=0x17f22b0, args=0x7fffffffc3f0,
n_params=1, param_types=0x1228f90) at /build/buildd/glib2.0-2.42.1/./gobject/gclosure.c:831
#11 0x00007ffff5866708 in g_signal_emit_valist (instance=instance@entry=0x17f22b0, signal_id=signal_id@entry=672,
detail=detail@entry=0, var_args=var_args@entry=0x7fffffffc3f0) at /build/buildd/glib2.0-2.42.1/./gobject/gsignal.c:3218
#12 0x00007ffff5867882 in g_signal_emit_by_name (instance=0x17f22b0, detailed_signal=0x532160 "remove-media")
at /build/buildd/glib2.0-2.42.1/./gobject/gsignal.c:3405
#13 0x00000000005073ff in __lambda85_ (self=0x17f22b0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/Dialogs/RemoveFilesDialog.vala:117
#14 0x0000000000507429 in ___lambda85__gtk_button_clicked (_sender=0x14da4d0, self=0x17f22b0)
at /home/cran/Documents/Projects/elementary/noise/instant-beta/src/Dialogs/RemoveFilesDialog.vala:116
#15 0x00007ffff584e3f7 in _g_closure_invoke_va (closure=0x17e1a50, return_value=0x0, instance=0x14da4d0, args=0x7fffffffc748,
n_params=0, param_types=0x0) at /build/buildd/glib2.0-2.42.1/./gobject/gclosure.c:831
#16 0x00007ffff5866708 in g_signal_emit_valist (instance=0x14da4d0, signal_id=<optimized out>, detail=0,
Not sure what we can do right now.
Maybe moving away from nm
and using unwind
would fix this.
Note: the vala-stacktrace is wrong:
MediaDao.get_media
is not called (gdb got this right)
How to reproduce
Delete a track in Noise and revert the comment mentioning the issue url