TVOut issues with intel video driver
rglowery at exemail.com.au
rglowery at exemail.com.au
Fri Oct 12 04:32:20 PDT 2007
> As far as the crash goes, does the following help anyone diagnose why
> "xrandr --output TV --set TV_FORMAT 576p --auto" is crashing X on my
> Ubuntu Gutsy Gibbon amd64 install?
>
> Program received signal SIGSEGV, Segmentation fault.
> xf86ProbeOutputModes (scrn=0x805fe0, maxX=1024, maxY=1024)
> at ../../../../hw/xfree86/modes/xf86Crtc.c:1177
> 1177 ../../../../hw/xfree86/modes/xf86Crtc.c: No such file or
> directory.
> in ../../../../hw/xfree86/modes/xf86Crtc.c
> (gdb) bt full
> #0 xf86ProbeOutputModes (scrn=0x805fe0, maxX=1024, maxY=1024)
> at ../../../../hw/xfree86/modes/xf86Crtc.c:1177
> i = <value optimized out>
> config = (xf86CrtcConfigPtr) 0x809960
> o = 3
> #1 0x00000000004b986b in xf86RandR12GetInfo12 (pScreen=0x818970,
> rotations=<value optimized out>)
> at ../../../../hw/xfree86/modes/xf86RandR12.c:990
> pScrn = (ScrnInfoPtr) 0x805fe0
> #2 0x0000000000526093 in RRGetInfo (pScreen=0x818970)
> at ../../randr/rrinfo.c:195
> pScrPriv = (rrScrPrivPtr) 0x8641b0
> rotations = 0
> i = 19739936
> #3 0x00000000005299ca in ProcRRGetScreenSizeRange (client=0x9d0480)
> at ../../randr/rrscreen.c:222
> rep = {type = 1 '\001', pad = 0 '\0', sequenceNumber = 22, length
> = 0,
> minWidth = 46628, minHeight = 126, maxWidth = 0, maxHeight = 0, pad0 =
> 156,
> pad1 = 0, pad2 = 5302284, pad3 = 0}
> pWin = <value optimized out>
> pScreen = (ScreenPtr) 0xc1
> #4 0x00000000004514eb in Dispatch () at ../../dix/dispatch.c:457
> clientReady = <value optimized out>
Folks,
Some further points of clarification
1) I am using xserver-xorg-core 2:1.3.0.0.dfsg-12ubuntu8
2) Examining the source at
http://packages.ubuntu.com/gutsy/x11/xserver-xorg-core, line 1177 is shown
below. xf86SortModes is not shown in the stack trace, but I assume since
xf86SortModes is static and only has one caller that it is optimized out.
(can someone confirm this assumption is correct?)
static DisplayModePtr
xf86SortModes (DisplayModePtr input)
{
DisplayModePtr output = NULL, i, o, n, *op, prev;
/* sort by preferred status and pixel area */
while (input)
{
i = input;
input = input->next; // line 1177
for (op = &output; (o = *op); op = &o->next)
if (xf86ModeCompare (o, i) > 0)
break;
i->next = *op;
*op = i;
}
/* prune identical modes */
for (o = output; o && (n = o->next); o = n)
So the question is, how has the input pointer become invalid. I would
appreciate it is someone could look at this. I am happy to do any legwork
required.
Thanks
-Rob
More information about the xorg
mailing list