Segfault when opening a layout
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pcb |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
OS is Ubuntu 11.04 AMD64 with Intel internal graphics. PCB built from scratch with git sources as of today:
./autogen.sh && ./configure --disable-doc && make clean && make
Steps to reproduce: open an existing layout with the GUI menu.
Expected behaviour: the layout becomes visible.
Actual behaviour: crash.
Here's the backtrace:
mah@piccard:
mah@piccard:
GNU gdb (Ubuntu/Linaro 7.2-1ubuntu11) 7.2
[...]
(gdb) run
Starting program: /home/mah/
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffead5f700 (LWP 5035)]
[New Thread 0x7fffea55e700 (LWP 5036)]
disabling 3D rasterization
[New Thread 0x7fffe0f07700 (LWP 5037)]
[Thread 0x7fffe0f07700 (LWP 5037) exited]
[New Thread 0x7fffe0f07700 (LWP 5038)]
[New Thread 0x7fffe0706700 (LWP 5039)]
[New Thread 0x7fffdff05700 (LWP 5040)]
[Thread 0x7fffdff05700 (LWP 5040) exited]
[Thread 0x7fffead5f700 (LWP 5035) exited]
[Thread 0x7fffe0706700 (LWP 5039) exited]
Program received signal SIGSEGV, Segmentation fault.
0x00000000004631f5 in GetValueEx (val=<value optimized out>,
units=0x12179ab ",6000,
extra_
at misc.c:188
188 if (!scaled && default_unit && *default_unit)
(gdb) bt
#0 0x00000000004631f5 in GetValueEx (val=<value optimized out>,
units=0x12179ab ",6000,
extra_
at misc.c:188
#1 0x000000000046331a in GetNum (s=0x7fffffffb9a8,
default_
#2 0x000000000046442c in ParseRouteString (
s=0x12179a7 "3000,6000,
default_
#3 0x000000000046ef82 in yyparse () at parse_y.y:657
#4 0x000000000046da2c in Parse (Executable=<value optimized out>,
Path=0x87fdc0 "",
Filename=
#5 0x000000000045369a in LoadPCB (
Filename=
#6 0x00000000004287dc in ActionLoadFrom (argc=<value optimized out>,
argv=<value optimized out>, x=<value optimized out>,
y=<value optimized out>) at action.c:5884
#7 0x0000000000496fcd in hid_actionv (name=<value optimized out>, argc=2,
argv=
#8 0x0000000000497552 in hid_actionl (name=<value optimized out>)
at hid/common/
(#9 to #36 removed)
Note: the initial empty layout comes up fine.
Changed in geda-project: | |
importance: | Undecided → Critical |
tags: | added: segfault |
Here's another backtrace, made with an unoptimized executable:
#0 0x000000000048091f in GetValueEx ( 3000,1600: Power,2500, 6000,3500, 1000:Fat, 4000,6000, 3500,1000: Skinny, 600,2402, 1181,600" , 3000,1600: Power,2500, 6000,3500, 1000:Fat, 4000,6000, 3500,1000: Skinny, 600,2402, 1181,600" , absolute= 0x7fffffffb79e, extra_units=0x0, unit=0x1 <Address 0x1 out of bounds>) at misc.c:188 unit=0x1 <Address 0x1 out of bounds>) at misc.c:851 3000,1600: Power,2500, 6000,3500, 1000:Fat, 4000,6000, 3500,1000: Skinny, 600,2402, 1181,600" , routeStyle= 0xfbd1e8, unit=0x1 <Address 0x1 out of bounds>) at misc.c:881
val=0x12d2847 "3000,6000,
units=0x12d284b ",6000,
default_
#1 0x00000000004836d5 in GetNum (s=0x7fffffffb7f8,
default_
#2 0x00000000004838af in ParseRouteString (
s=0x12d2847 "3000,6000,
default_
#3 0x00000000004924bc in yyparse () at parse_y.y:657
Looks like the string "cmil" sent in parse_y.y:657 doesn't reach it's destination.