I have a program that uses cube depth textures (for point light shadow maps). When I try to stop the program in gldb-gui (r660) it exits with code 1 from io_safe_read:
read failed: Cannot allocate memory
Breakpoint 1, 0x0000003d34e36500 in exit () from /lib64/libc.so.6
#0 0x0000003d34e36500 in exit () from /lib64/libc.so.6
#1 0x00000000009e4f26 in io_safe_read (reader=0x7ffff185c510, buf=0x7fffffffdd1c, count=4) at ../bugle-r660/common/protocol.c:233
#2 0x00000000009e5047 in gldb_protocol_recv_code (reader=0x1, code=0x7fffffffdd64) at ../bugle-r660/common/protocol.c:277
#3 0x0000000000415e08 in state_get () at ../bugle-r660/gldb/gldb-common.c:458
#4 0x0000000000415e5d in state_get () at ../bugle-r660/gldb/gldb-common.c:467
#5 0x000000000041638d in gldb_get_response_state_tree () at ../bugle-r660/gldb/gldb-common.c:489
#6 gldb_get_response () at ../bugle-r660/gldb/gldb-common.c:583
#7 0x00000000004166e2 in gldb_state_update (id=<value optimized out>) at ../bugle-r660/gldb/gldb-common.c:324
#8 0x000000000040b80a in gldb_state_pane_real_update (self=0x7ffff3012520) at ../bugle-r660/gldb/gldb-gui-state.c:595
#9 0x000000000040a56f in gldb_pane_update (self=0x7ffff3012520) at ../bugle-r660/gldb/gldb-gui.c:120
#10 0x000000000040a6ca in stopped (context=0x7fffffffe0d0, text=0x7ffff1860a00 "Stopped in glXMakeCurrent(0x7fffe9da0b90, 0x04600002, 0x7fffe9dd5348) = False") at ../bugle-r660/gldb/gldb-gui.c:334
#11 0x000000000040a8e7 in response_callback (channel=<value optimized out>, condition=<value optimized out>, user_data=0x7fffffffe0d0) at ../bugle-r660/gldb/gldb-gui.c:433
#12 0x000000359723779b in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#13 0x000000359723af6d in ?? () from /lib64/libglib-2.0.so.0
#14 0x000000359723b49d in g_main_loop_run () from /lib64/libglib-2.0.so.0
#15 0x0000003599b238a7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#16 0x0000000000409f9d in main (argc=2, argv=0x7fffffffe248) at ../bugle-r660/gldb/gldb-gui.c:791
Occasionally I also see the message:
read failed: Resource temporarily unavailable
Any ideas what might be the problem?
I'm afraid I'm not sure what's causing this - it looks like the read request is only for 4 bytes, so it's not as if a size field has become corrupted. I could probably tell you more with a dump of *s from frames 3 and 4, to see which states are in the progress of being dumped.
This doesn't look like it'll be easy to debug remotely though. Are you able to supply with a test case that I can use to try and reproduce this? You can email me at email@example.com.
sorry for the long delay. Unfortunately gldb_state *s; is not available in both frames (don't quite understand why, though), but I got this from gdb:
in frame 3:
numeric_name == 11, enum_name == 0, length == 0 and data == "".
in frame 4:
numeric_name == 0, enum_name == 0, length == 0 and data == ""
Getting you a test program is not easy right now as this happens with a program using OpenSG (opensg.vrsource.org) and additions to it that are not in the public repository yet. Anyways, I was mainly asking to make sure that I was not doing something foolish or running into something already known and avoidable.
I'll put this on my todo and get back to you when the necessary pieces are in OpenSG, then it should be easier to reproduce this.
Thanks for your help,
Log in to post a comment.