Strange problem, maybe something weird happened on writing preferences file or something. Could you post ~/.meditrc and ~/.medit.state?
If you don't mind playing with gdb, it'd be nice if you recompiled medit with debugging stuff, e.g.
make clean && CFLAGS="-g" ./configure ... --enable-debug && make
and ran it with
gdb --args medit --g-fatal-warnings
(type 'r', Enter in gdb prompt). It'll get a stack trace, which would be helpful.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
$ more .medit.state
.medit.state: No such file or directory
# gdb --args medit --g-fatal-warnings
GNU gdb 6.3-8mdv2007.0 (Mandriva Linux release 2007.0)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-mandriva-linux-gnu"...Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r
Starting program: /usr/local/bin/medit --g-fatal-warnings
[Thread debugging using libthread_db enabled]
[New Thread 46955032184208 (LWP 22147)]
Moo-Message: moo_app_send_files: got 0 files to pid NONE
Moo-Message: _moo_app_input_send_msg: sending data to pid NONE
(gdb) bt
#0 0x00002b6299138fb5 in raise () from /lib64/libc.so.6
#1 0x00002b629913a5b0 in abort () from /lib64/libc.so.6
#2 0x00002b62988eb4fb in g_logv () from /usr/lib64/libglib-2.0.so.0
#3 0x00002b62988eb583 in g_log () from /usr/lib64/libglib-2.0.so.0
#4 0x00000000004d5ee7 in prefs_new_key_from_string (prefs=0x817ad0,
key=0x829596 "Plugins/FileSelector/last_dir", value=0x82a930 "/root/",
prefs_type=MOO_PREFS_RC) at mooprefs.c:446
#5 0x00000000004d5c26 in moo_prefs_new_key_from_string (
key=0x829596 "Plugins/FileSelector/last_dir", value=0x82a930 "/root/",
prefs_type=MOO_PREFS_RC) at mooprefs.c:368
#6 0x00000000004d7137 in process_element (elm=0x82a860,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1017
#7 0x00000000004d7170 in process_element (elm=0x82a6d0,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#8 0x00000000004d7170 in process_element (elm=0x82a540,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#9 0x00000000004d7170 in process_element (elm=0x82a390,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#10 0x00000000004d72ba in load_file (file=0x829000 "/root/.meditrc",
prefs_type=MOO_PREFS_RC, error=0x7fff13fc5b80) at mooprefs.c:1083
#11 0x00000000004d734a in moo_prefs_load (file_rc=0x829000 "/root/.meditrc",
file_state=0x828f70 "/root/.medit.state", error=0x7fff13fc5b80)
at mooprefs.c:1099
#12 0x0000000000490e35 in moo_app_init_real (app=0x7e8a00) at mooapp.c:833
#13 0x00000000004ece72 in _moo_marshal_BOOLEAN__VOID (closure=0x7e8cc0,
return_value=0x7fff13fc60c0, n_param_values=1,
param_values=0x7fff13fc5ea0, invocation_hint=0x7fff13fc5d60,
marshal_data=0x490dc9) at moomarshals.c:551
#14 0x00002b629843b1da in g_closure_invoke ()
from /usr/lib64/libgobject-2.0.so.0
#15 0x00002b629844ba0d in g_signal_override_class_closure ()
from /usr/lib64/libgobject-2.0.so.0
#16 0x00002b629844c61f in g_signal_emit_valist ()
from /usr/lib64/libgobject-2.0.so.0
#17 0x00002b629844ca33 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#18 0x0000000000491a3b in moo_app_init (app=0x7e8a00) at mooapp.c:1170
#19 0x0000000000444cd7 in main (argc=1, argv=0x7fff13fc6438) at medit-app.c:671
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks, it's what I needed. Unfortunately, it just should not happen. Either something is wrong somewhere, or gdb is lying. Do you have some non-ASCII-based locale encoding by chance (some UTF16 or some of CJK group)? Do you experience something weird like crashes or drawing garbage?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I may be getting out of my depthe here, but my locale settings are:
>
> LANG=en_GB.UTF-8
This means you are using good nice UTF8, I just hoped maybe gdb converted "/root/" from some weird encoding which I don't handle properly somehow. But, it's not the case, so I have no idea what's wrong. I'll try to valgrind it, maybe it's some memory corruption somewhere.
> I do get occasional strange characters in text though. Any ideas?
How do you get those? Is it in files you open (then it might be an encoding problem, it could get characters which it can't display); or do they appear out of blue, when you type something in? Maybe it's GTK's unicode feature - you press Shift-Ctrl-U and enter hexadecimal code of unicode character (or in older GTK you use Ctrl-Shift-[0-9A-F])?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The strange characters are predictable and in pretty ordinary files e.g.:
man(1) man(1)
NAME
man - format and display the on-line manual pages
manpath - determine user's search path for man pages
SYNOPSIS
man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file]
[-M pathlist] [-P pager] [-S section_list] [section] name ...
DESCRIPTION
man formats and displays the on-line manual pages. If you specify secâ <<<<<<<<<<<<<<<<<<<<<<
tion, man only looks in that section of the manual. name is normally
the name of the manual page, which is typically the name of a command,
function, or file. However, if name contains a slash (/) then man
interprets it as a file specification, so that you can do man ./foo.5
or even man /cd/foo/bar.1.gz.
See what I mean?
All the best
Andrew
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have complied and install medit 8.2 and also tried the beta version from today and I get the same error message when I run medit:
(medit:11305): Moo-CRITICAL **: prefs_new_key: assertion `g_utf8_validate (key, -1, NULL)' failed
Mandriva 2007 x86_64
# uname -a
Linux ezcool 2.6.17-6mdv #1 SMP Wed Oct 25 12:17:57 MDT 2006 x86_64 AMD Athlon(tm) 64 Processor 4000+ GNU/Linux
Does anyone have any ideas?
All the best
Andrew
Strange problem, maybe something weird happened on writing preferences file or something. Could you post ~/.meditrc and ~/.medit.state?
If you don't mind playing with gdb, it'd be nice if you recompiled medit with debugging stuff, e.g.
make clean && CFLAGS="-g" ./configure ... --enable-debug && make
and ran it with
gdb --args medit --g-fatal-warnings
(type 'r', Enter in gdb prompt). It'll get a stack trace, which would be helpful.
Sure, here they are:
$ more .meditrc
<?xml version="1.0" encoding="UTF-8"?>
<Editor>
<recent-items>
<item>/usr/local/Adobe/Acrobat7.0/bin/acroread</item>
</recent-items>
<langs>
<lang id="makefile">
<config>use-tabs: true</config>
</lang>
</langs>
</Editor>
<Prefs>
<Plugins>
<FileSelector>
<last_dir>/home/andrew/</last_dir>
</FileSelector>
</Plugins>
<Editor>
<window>
<width>838</width>
<height>499</height>
</window>
<show_line_numbers>TRUE</show_line_numbers>
<last_dir>/usr/local/Adobe/Acrobat7.0/bin</last_dir>
<color_scheme>Default</color_scheme>
</Editor>
</Prefs>
$ more .medit.state
.medit.state: No such file or directory
# gdb --args medit --g-fatal-warnings
GNU gdb 6.3-8mdv2007.0 (Mandriva Linux release 2007.0)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-mandriva-linux-gnu"...Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r
Starting program: /usr/local/bin/medit --g-fatal-warnings
[Thread debugging using libthread_db enabled]
[New Thread 46955032184208 (LWP 22147)]
Moo-Message: moo_app_send_files: got 0 files to pid NONE
Moo-Message: _moo_app_input_send_msg: sending data to pid NONE
Moo-CRITICAL **: prefs_new_key_from_string: assertion `g_utf8_validate (key, -1, NULL)' failed
aborting...
Program received signal SIGABRT, Aborted.
[Switching to Thread 46955032184208 (LWP 22147)]
0x00002ab4914e5fb5 in raise () from /lib64/libc.so.6
Not sure whether this helps or not.
All the best
Andrew
Sorry, I forgot about the 'bt' command in gdb prompt, which would actually print the backtrace. The rc file doesn't have anything obvious.
OK - same as above plus:
(gdb) bt
#0 0x00002b6299138fb5 in raise () from /lib64/libc.so.6
#1 0x00002b629913a5b0 in abort () from /lib64/libc.so.6
#2 0x00002b62988eb4fb in g_logv () from /usr/lib64/libglib-2.0.so.0
#3 0x00002b62988eb583 in g_log () from /usr/lib64/libglib-2.0.so.0
#4 0x00000000004d5ee7 in prefs_new_key_from_string (prefs=0x817ad0,
key=0x829596 "Plugins/FileSelector/last_dir", value=0x82a930 "/root/",
prefs_type=MOO_PREFS_RC) at mooprefs.c:446
#5 0x00000000004d5c26 in moo_prefs_new_key_from_string (
key=0x829596 "Plugins/FileSelector/last_dir", value=0x82a930 "/root/",
prefs_type=MOO_PREFS_RC) at mooprefs.c:368
#6 0x00000000004d7137 in process_element (elm=0x82a860,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1017
#7 0x00000000004d7170 in process_element (elm=0x82a6d0,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#8 0x00000000004d7170 in process_element (elm=0x82a540,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#9 0x00000000004d7170 in process_element (elm=0x82a390,
prefs_type=MOO_PREFS_RC) at mooprefs.c:1030
#10 0x00000000004d72ba in load_file (file=0x829000 "/root/.meditrc",
prefs_type=MOO_PREFS_RC, error=0x7fff13fc5b80) at mooprefs.c:1083
#11 0x00000000004d734a in moo_prefs_load (file_rc=0x829000 "/root/.meditrc",
file_state=0x828f70 "/root/.medit.state", error=0x7fff13fc5b80)
at mooprefs.c:1099
#12 0x0000000000490e35 in moo_app_init_real (app=0x7e8a00) at mooapp.c:833
#13 0x00000000004ece72 in _moo_marshal_BOOLEAN__VOID (closure=0x7e8cc0,
return_value=0x7fff13fc60c0, n_param_values=1,
param_values=0x7fff13fc5ea0, invocation_hint=0x7fff13fc5d60,
marshal_data=0x490dc9) at moomarshals.c:551
#14 0x00002b629843b1da in g_closure_invoke ()
from /usr/lib64/libgobject-2.0.so.0
#15 0x00002b629844ba0d in g_signal_override_class_closure ()
from /usr/lib64/libgobject-2.0.so.0
#16 0x00002b629844c61f in g_signal_emit_valist ()
from /usr/lib64/libgobject-2.0.so.0
#17 0x00002b629844ca33 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#18 0x0000000000491a3b in moo_app_init (app=0x7e8a00) at mooapp.c:1170
#19 0x0000000000444cd7 in main (argc=1, argv=0x7fff13fc6438) at medit-app.c:671
Thanks, it's what I needed. Unfortunately, it just should not happen. Either something is wrong somewhere, or gdb is lying. Do you have some non-ASCII-based locale encoding by chance (some UTF16 or some of CJK group)? Do you experience something weird like crashes or drawing garbage?
I may be getting out of my depthe here, but my locale settings are:
LANG=en_GB.UTF-8
LANGUAGE=en_GB.UTF-8:en_GB:en
LC_ADDRESS=en_GB.UTF-8
LC_COLLATE=en_GB.UTF-8
LC_CTYPE=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_MESSAGES=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LC_SOURCED=1
LC_TELEPHONE=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
I do get occasional strange characters in text though. Any ideas?
Many Thanks
All the best
Andrew
> I may be getting out of my depthe here, but my locale settings are:
>
> LANG=en_GB.UTF-8
This means you are using good nice UTF8, I just hoped maybe gdb converted "/root/" from some weird encoding which I don't handle properly somehow. But, it's not the case, so I have no idea what's wrong. I'll try to valgrind it, maybe it's some memory corruption somewhere.
> I do get occasional strange characters in text though. Any ideas?
How do you get those? Is it in files you open (then it might be an encoding problem, it could get characters which it can't display); or do they appear out of blue, when you type something in? Maybe it's GTK's unicode feature - you press Shift-Ctrl-U and enter hexadecimal code of unicode character (or in older GTK you use Ctrl-Shift-[0-9A-F])?
The strange characters are predictable and in pretty ordinary files e.g.:
man(1) man(1)
NAME
man - format and display the on-line manual pages
manpath - determine user's search path for man pages
SYNOPSIS
man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file]
[-M pathlist] [-P pager] [-S section_list] [section] name ...
DESCRIPTION
man formats and displays the on-line manual pages. If you specify secâ <<<<<<<<<<<<<<<<<<<<<<
tion, man only looks in that section of the manual. name is normally
the name of the manual page, which is typically the name of a command,
function, or file. However, if name contains a slash (/) then man
interprets it as a file specification, so that you can do man ./foo.5
or even man /cd/foo/bar.1.gz.
See what I mean?
All the best
Andrew