andrewrk / andrewrk/genesis

font rendering crash

Aberta
#17 2 comentários 0 reações 0 responsáveis Ver no GitHub
bug
Linguagem predominante
C++
Estrelas
201
Forks
22
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

seems to be a sporadic failure. current sha1: 89e2ba08883ab381

gdb session:

```
andy@andy-bx:~/dev/genesis/build$ make && gdb ./genesis -ex run -ex quit
[ 13%] Built target libgenesis_shared
[ 14%] Built target delay
[ 18%] Built target generate_unicode_data
Scanning dependencies of target genesis
[ 19%] Building CXX object CMakeFiles/genesis.dir/src/genesis_editor.cpp.o
Linking CXX executable genesis
[ 60%] Built target genesis
[ 74%] Built target libgenesis_static
[ 75%] Built target list_devices
[ 77%] Built target list_supported_formats
[ 78%] Built target normalize_audio
[ 79%] Built target play
[ 79%] Built target rucksack_bundle
[ 80%] Built target synth
[100%] Built target unit_tests
GNU gdb (Ubuntu 7.9-1ubuntu1) 7.9
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./genesis...done.
Starting program: /home/andy/dev/genesis/build/genesis
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffde560700 (LWP 13578)]
[New Thread 0x7fffded61700 (LWP 13577)]
[New Thread 0x7fffe4f50700 (LWP 13576)]
[New Thread 0x7fffe9752700 (LWP 13575)]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000427598 in HashMap::key_to_index (
this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:221
221 return (int)(HashFunction(key) % ((uint32_t)_capacity));
A debugging session is active.

Inferior 1 [process 13571] will be killed.

Quit anyway? (y or n) n
Not confirmed.
(gdb) up
#1 0x00000000004272d1 in HashMap::internal_get
(this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:206
206 int start_index = key_to_index(key);
(gdb)
#2 0x00000000004270bb in HashMap::maybe_get (
this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:70
70 return internal_get(key);
(gdb)
#3 0x0000000000426c92 in FontSize::font_cache_entry (this=0x1, codepoint=85)
at /home/andy/dev/genesis/src/font_size.cpp:38
38 auto *entry = _font_cache.maybe_get(codepoint);
(gdb)
#4 0x0000000000421e5e in Label::update (this=0x791118) at /home/andy/dev/genesis/src/label.cpp:112
112 FontCacheValue entry = _font_size->font_cache_entry(ch);
(gdb)
#5 0x000000000043406c in MenuWidgetItem::set_caption (this=0x791110, caption=..., new_mnemonic_index=0)
at /home/andy/dev/genesis/src/menu_widget.cpp:68
68 label.update();
(gdb)
#6 0x0000000000434010 in MenuWidgetItem::set_caption (this=0x791110, orig_caption=...)
at /home/andy/dev/genesis/src/menu_widget.cpp:63
63 return set_caption(caption, mnemonic_index);
(gdb)
#7 0x000000000042c851 in GenesisEditor::refresh_menu_state (this=0x75a8c0)
at /home/andy/dev/genesis/src/genesis_editor.cpp:251
251 editor_window->undo_menu->set_caption(undo_caption);
(gdb) print undo_caption
$1 = {static max_codepoint = 2097151, _chars = {_items = 0xd335a0, _length = 5, _capacity = 16}}
(gdb) print undo_caption.encode()
$2 = {_buffer = {_items = 0xa762f0 "&Undo", _length = 6, _capacity = 16}}
(gdb) down
#6 0x0000000000434010 in MenuWidgetItem::set_caption (this=0x791110, orig_caption=...)
at /home/andy/dev/genesis/src/menu_widget.cpp:63
63 return set_caption(caption, mnemonic_index);
(gdb)
#5 0x000000000043406c in MenuWidgetItem::set_caption (this=0x791110, caption=..., new_mnemonic_index=0)
at /home/andy/dev/genesis/src/menu_widget.cpp:68
68 label.update();
(gdb)
#4 0x0000000000421e5e in Label::update (this=0x791118) at /home/andy/dev/genesis/src/label.cpp:112
112 FontCacheValue entry = _font_size->font_cache_entry(ch);
(gdb)
#3 0x0000000000426c92 in FontSize::font_cache_entry (this=0x1, codepoint=85)
at /home/andy/dev/genesis/src/font_size.cpp:38
38 auto *entry = _font_cache.maybe_get(codepoint);
(gdb)
#2 0x00000000004270bb in HashMap::maybe_get (
this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:70
70 return internal_get(key);
(gdb)
#1 0x00000000004272d1 in HashMap::internal_get
(this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:206
206 int start_index = key_to_index(key);
(gdb)
#0 0x0000000000427598 in HashMap::key_to_index
(this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:221
221 return (int)(HashFunction(key) % ((uint32_t)_capacity));
(gdb)
Bottom (innermost) frame selected; you cannot go down.
(gdb) up
#1 0x00000000004272d1 in HashMap::internal_get
(this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:206
206 int start_index = key_to_index(key);
(gdb) print key
$3 = (const unsigned int &) @0x7fffffffda3c: 85
(gdb) up
#2 0x00000000004270bb in HashMap::maybe_get (
this=0x9, key=@0x7fffffffda3c: 85) at /home/andy/dev/genesis/src/hash_map.hpp:70
70 return internal_get(key);
(gdb) up
#3 0x0000000000426c92 in FontSize::font_cache_entry (this=0x1, codepoint=85)
at /home/andy/dev/genesis/src/font_size.cpp:38
38 auto *entry = _font_cache.maybe_get(codepoint);
(gdb) print codeponit
No symbol "codeponit" in current context.
(gdb) print codepoint
$4 = 85
(gdb) print _font_cache
Cannot access memory at address 0x9
(gdb) print *this
Cannot access memory at address 0x1
(gdb) up
#4 0x0000000000421e5e in Label::update (this=0x791118) at /home/andy/dev/genesis/src/label.cpp:112
112 FontCacheValue entry = _font_size->font_cache_entry(ch);
(gdb) print *this
$5 = {_gui = 0x100003503, _width = 0, _height = 0, _texture_id = 0, _vertex_buffer = 0, _text = {
static max_codepoint = 2097151, _chars = {_items = 0xd769a0, _length = 4, _capacity = 16}}, _font_size = 0x1,
_img_buffer = {_buffer = {_items = 0xaf7b50 "\240e{", _length = 2, _capacity = 16}}, _letters = {_items = 0x0,
_length = 0, _capacity = 0}}
(gdb) quit
A debugging session is active.

Inferior 1 [process 13571] will be killed.

Quit anyway? (y or n) y
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.