On 06/12/2014 01:12 AM, Neil Hodgson wrote:
>> *** BUG ***
>> In pixman_region32_init_rect: Invalid rectangle passed
>> Set a breakpoint on '_pixman_log_error' to debug
>
> I'm not seeing that and a breakpoint on _pixman_log_error never hits.
Huh, might be something specific to my setup then (virtual box). At any
rate I chased this a little bit to see if it was related to the seg
faults, which it did not seem to be (eliminated the BUG printout but
still got the original seg fault; had a confusing debugging session
though, details at the end for reference).
Thanks, I'll see if I can get some time to dive into Scintilla and this
issue properly sometime soonish.
Nils
- Weird pixman debug log debugging session:
Breakpoint 1, _pixman_log_error (function=0xb70f96a8
"pixman_region32_init_rect",
message=0xb70f9547 "Invalid rectangle passed") at
../../pixman/pixman-utils.c:297
297 ../../pixman/pixman-utils.c: No such file or directory.
(gdb) bt
#0 _pixman_log_error (function=0xb70f96a8 "pixman_region32_init_rect",
message=0xb70f9547 "Invalid rectangle passed") at
../../pixman/pixman-utils.c:297
#1 0xb70c2db1 in pixman_region32_init_rect (region=0x8571f60, x=0, y=0,
width=496, height=4294967284)
at ../../pixman/pixman-region.c:389
#2 0xb7992893 in cairo_region_create_rectangle () from
/usr/lib/i386-linux-gnu/libcairo.so.2
#3 0xb7dde184 in gtk_widget_queue_draw_area () from
/usr/lib/i386-linux-gnu/libgtk-3.so.0
#4 0x0817e124 in Window::InvalidateRectangle (this=0x84fcb9c, rc=...)
at PlatGTK.cxx:1297
#5 0x0814dc98 in Editor::Redraw (this=0x84fcb98) at ../src/Editor.cxx:662
#6 0x0814c7a0 in Editor::InvalidateStyleRedraw (this=0x84fcb98) at
../src/Editor.cxx:344
#7 0x081724e6 in Editor::WndProc (this=0x84fcb98, iMessage=2069,
wParam=0, lParam=0)
at ../src/Editor.cxx:8859
#8 0x0814b4a7 in ScintillaBase::WndProc (this=0x84fcb98, iMessage=2069,
wParam=0, lParam=0)
at ../src/ScintillaBase.cxx:1033
#9 0x0812757c in ScintillaGTK::WndProc (this=0x84fcb98, iMessage=2069,
wParam=0, lParam=0)
at ScintillaGTK.cxx:1011
#10 0x0812c2ad in ScintillaGTK::DirectFunction (ptr=139447192,
iMessage=2069, wParam=0, lParam=0)
at ScintillaGTK.cxx:2825
#11 0x080f0d4d in GUI::ScintillaWindow::Call(unsigned int, unsigned
long, long) ()
#12 0x0811fade in SciTEBase::ReadProperties() ()
#13 0x080e3dec in SciTEGTK::ReadProperties() ()
#14 0x0810f3f9 in SciTEBase::Open(FilePath, SciTEBase::OpenFlags) ()
#15 0x08104892 in SciTEBase::ProcessCommandLine(std::string&, int) ()
#16 0x080f0a89 in SciTEGTK::Run(int, char**) ()
#17 0x080e1d83 in main ()
(gdb) frame 5
#5 0x0814dc98 in Editor::Redraw (this=0x84fcb98) at ../src/Editor.cxx:662
662 wMain.InvalidateRectangle(rcClient);
(gdb) info locals
rcClient = {left = 0, top = 0, right = 496, bottom = -12}
Consistent with the huge weight in frame #1, due to conversion from
signed to unsigned. However, adding debug printouts just made for
confusion, with the output being:
GetClientRectangle <-- Editor::Redraw, before GetClientRectangle()
a x: 0, y: 0, width: 509, height: 1 <-- PlatGtk: Window::GetPosition(),
allocation after gtk_widget_get_allocation
left: 0, top: 0, right: 509, bottom: 1 <-- PlatGtk:
Window::GetPosition(), PRectangle before return
GetClientRectangle done <-- Editor::Redraw, after GetClientRectangle()
left: 0, top: 0, right: 496, bottom: -12 <-- Editor::Redraw, resulting
rcClient
I'm guessing the call chain is something different than what I expected
(GetClientRectancle -> GetPosition), or there's some other devilry
involved. Just skipping the InvalidateRectangle for negative heights got
rid of the pixman warning, but had no effect on the seg fault. End of
session.