Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite loop in mapserver::curve3_div::recursive_bezier with nan values drawing labels #3862

Closed
mapserver-bot opened this issue Apr 4, 2012 · 4 comments
Assignees

Comments

@mapserver-bot
Copy link

Reporter: dfuhry
Date: 2011/05/07 - 20:09
Trac URL: http://trac.osgeo.org/mapserver/ticket/3862
#0 mapserver::calc_sq_distance (x1=-nan(0x8000000000000),

y1=-nan(0x8000000000000), x2=-nan(0x8000000000000), 
y2=-nan(0x8000000000000)) at renderers/agg/src/../include/agg_math.h:70

#1 0x0000000000599016 in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=30)
at renderers/agg/src/agg_curves.cpp:216

#2 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=29)
at renderers/agg/src/agg_curves.cpp:228

#3 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=28)
at renderers/agg/src/agg_curves.cpp:227

#4 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=27)
at renderers/agg/src/agg_curves.cpp:228

---Type to continue, or q to quit---
#5 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=26)
at renderers/agg/src/agg_curves.cpp:227

#6 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=25)
at renderers/agg/src/agg_curves.cpp:228

#7 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=24)
at renderers/agg/src/agg_curves.cpp:228

#8 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=23)
at renderers/agg/src/agg_curves.cpp:228

#9 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 

---Type to continue, or q to quit---
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=22)
at renderers/agg/src/agg_curves.cpp:227
#10 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=21)
at renderers/agg/src/agg_curves.cpp:228

#11 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=20)
at renderers/agg/src/agg_curves.cpp:227

#12 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=19)
at renderers/agg/src/agg_curves.cpp:227

#13 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=18)
at renderers/agg/src/agg_curves.cpp:227

#14 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

---Type to continue, or q to quit---
this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000),
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000),
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=17)
at renderers/agg/src/agg_curves.cpp:228
#15 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=16)
at renderers/agg/src/agg_curves.cpp:228

#16 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=15)
at renderers/agg/src/agg_curves.cpp:228

#17 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=14)
at renderers/agg/src/agg_curves.cpp:227

#18 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=13)

---Type to continue, or q to quit---
at renderers/agg/src/agg_curves.cpp:228
#19 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=12)
at renderers/agg/src/agg_curves.cpp:227

#20 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=11)
at renderers/agg/src/agg_curves.cpp:228

#21 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=10)
at renderers/agg/src/agg_curves.cpp:228

#22 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=9)
at renderers/agg/src/agg_curves.cpp:227

#23 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 

---Type to continue, or q to quit---
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000),
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=8)
at renderers/agg/src/agg_curves.cpp:228
#24 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=7)
at renderers/agg/src/agg_curves.cpp:228

#25 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=6)
at renderers/agg/src/agg_curves.cpp:228

#26 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=5)
at renderers/agg/src/agg_curves.cpp:227

#27 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=4)
at renderers/agg/src/agg_curves.cpp:227

---Type to continue, or q to quit---
#28 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=3)
at renderers/agg/src/agg_curves.cpp:228

#29 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=2)
at renderers/agg/src/agg_curves.cpp:227

#30 0x00000000005990ea in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=1)
at renderers/agg/src/agg_curves.cpp:228

#31 0x00000000005990ac in mapserver::curve3_div::recursive_bezier (

this=0x7fffffffd848, x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000), level=0)
at renderers/agg/src/agg_curves.cpp:227

#32 0x0000000000599178 in mapserver::curve3_div::bezier (this=0x7fffffffd848,

x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 

---Type to continue, or q to quit---
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000))
at renderers/agg/src/agg_curves.cpp:237
#33 0x0000000000598b54 in mapserver::curve3_div::init (this=0x7fffffffd848,

x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000))
at renderers/agg/src/agg_curves.cpp:136

#34 0x000000000055f922 in mapserver::curve3::init (this=0x7fffffffd7c8,

x1=-nan(0x8000000000000), y1=-nan(0x8000000000000), 
x2=-nan(0x8000000000000), y2=-nan(0x8000000000000), 
x3=-nan(0x8000000000000), y3=-nan(0x8000000000000))
at renderers/agg/include/agg_curves.h:502

#35 0x000000000056bd8c in mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>::vertex (

this=0x7fffffffd7b0, x=0x7fffffffd760, y=0x7fffffffd758)
at renderers/agg/include/agg_conv_curve.h:168

#36 0x00000000005678d6 in mapserver::conv_transform<mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>, mapserver::trans_affine>::vertex (this=0x7fffffffdab0,

x=0x7fffffffd760, y=0x7fffffffd758)
at renderers/agg/include/agg_conv_transform.h:43

#37 0x00000000005631ce in mapserver::path_base<mapserver::vertex_block_storage<double, 8u, 256u> >::concat_path<mapserver::conv_transform<mapserver::conv_curve<---Type to continue, or q to quit---

mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>, mapserver::trans_affine> > (this=0x7fffffffda80, vs=...,
path_id=0) at renderers/agg/include/agg_path_storage.h:726
#38 0x0000000000558cd7 in agg2RenderGlyphs (img=0x821a30,

x=-nan(0x8000000000000), y=-nan(0x8000000000000), style=0x7fffffffdc10, 
text=0x988020 "State Route 141") at mapagg.cpp:324

#39 0x000000000050586e in msDrawText (image=0x821a30, labelPnt=...,

string=0x988020 "State Route 141", label=0x8d59a0, fontset=0x81a3c8, 
scalefactor=1) at maprendering.c:826

#40 0x000000000048ec35 in msDrawLabelCache (image=0x821a30, map=0x81a360)

at mapdraw.c:2616

#41 0x0000000000483885 in msDrawMap (map=0x81a360, querymap=0) at mapdraw.c:475
#42 0x000000000041a550 in main (argc=2, argv=0x7fffffffe5c8) at mapserv.c:1407

@mapserver-bot
Copy link
Author

Author: dfuhry
Date: 2011/05/07 - 20:15
gdb backtrace in description. One ugly fix is to guard against passing NaN values m_curve3.init in renderers/agg/include/agg_conv_curve.h. Hope there's enough information here for someone to implement a proper fix.

$ diff new/mapserver-6.0.0-rc1/renderers/agg/include/agg_conv_curve.h orig/mapserver-6.0.0-rc1/renderers/agg/include/agg_conv_curve.h
168,170c168
< if (!isnan(m_last_x) && !isnan(m_last_y) && !isnan(_x) && !isnan(_y) && !isnan(end_x) && !isnan(end_y))
< {

< m_curve3.init(m_last_x, m_last_y,

        m_curve3.init(m_last_x, m_last_y, 

174,176c172,173
< m_curve3.vertex(x, y); // First call returns path_cmd_move_to
< m_curve3.vertex(x, y); // This is the first vertex of the curve

< }

        m_curve3.vertex(x, y);    // First call returns path_cmd_move_to
        m_curve3.vertex(x, y);    // This is the first vertex of the curve

@mapserver-bot
Copy link
Author

Author: tbonfort
Date: 2011/05/10 - 08:13
msDrawLabelCache is passing in nans to the renderers, so the problem is not only in the agg code.

Can you provide a test case that reproduces this please?

@ghost ghost assigned tbonfort Apr 5, 2012
@tbonfort
Copy link
Member

no response from original reporter, closing.

@dfuhry
Copy link

dfuhry commented Apr 17, 2014

Hi Thomas, I hit this bug again in 6.2.1 on Linux. I tried creating a simple single layer shapefile testcase but the bug failed to manifest itself there. It is somewhat fickle so I assume might be dependent on previous items in the label cache.

Below is a backtrace and following that, gdb's "info locals" output from frames 41 (msDrawLabelCache), 40 (msDrawText), and 39 (agg2RenderGlyphs). The first obvious appearance of nan values are in msDrawLabelCache's metrics_poly.bounds.{minx,miny,maxx,maxy} and metrics_points[*].{x,y}, and the second are in msDrawText's s.rotation, x, and y. Not sure which (if either) of these is necessarily the root problem of the subsequent (near?) infinite recursion / looping.

$ gdb --args ./mapserv-dbg "QUERY_STRING=map=...&mode=tile&tilemode=gmap&tile=5343+11909+15"
...
#0  0x00007ffff79dc1e1 in mapserver::curve3_div::recursive_bezier (this=0x7fffffffda78, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff), level=32) at renderers/agg/src/agg_curves.cpp:157
...
#31 0x00007ffff79dc648 in mapserver::curve3_div::recursive_bezier (this=0x7fffffffda78, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff), level=1) at renderers/agg/src/agg_curves.cpp:225
#32 0x00007ffff79dc648 in mapserver::curve3_div::recursive_bezier (this=0x7fffffffda78, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff), level=0) at renderers/agg/src/agg_curves.cpp:225
#33 0x00007ffff79dc714 in mapserver::curve3_div::bezier (this=0x7fffffffda78, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff)) at renderers/agg/src/agg_curves.cpp:235
#34 0x00007ffff79dc0f0 in mapserver::curve3_div::init (this=0x7fffffffda78, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff)) at renderers/agg/src/agg_curves.cpp:136
#35 0x00007ffff79e8288 in mapserver::curve3::init (this=0x7fffffffd9f8, x1=-nan(0xfffffffffffff), y1=-nan(0xfffffffffffff), x2=-nan(0xfffffffffffff), y2=-nan(0xfffffffffffff), 
    x3=-nan(0xfffffffffffff), y3=-nan(0xfffffffffffff)) at renderers/agg/src/../include/agg_curves.h:502
#36 0x00007ffff7ad8268 in mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>::vertex(double*, double*) ()
   from /usr/local/lib/libmapserver-6.2.1.so
#37 0x00007ffff7ad4d70 in mapserver::conv_transform<mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>, mapserver::trans_affine>::vertex(double*, double*) () from /usr/local/lib/libmapserver-6.2.1.so
#38 0x00007ffff7ad0d62 in void mapserver::path_base<mapserver::vertex_block_storage<double, 8u, 256u> >::concat_path<mapserver::conv_transform<mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>, mapserver::trans_affine> >(mapserver::conv_transform<mapserver::conv_curve<mapserver::serialized_integer_path_adaptor<short, 6u>, mapserver::curve3, mapserver::curve4>, mapserver::trans_affine>&, unsigned int) () from /usr/local/lib/libmapserver-6.2.1.so
#39 0x00007ffff7ac790e in agg2RenderGlyphs (img=0x6082e0, x=-nan(0xfffffffffffff), y=-nan(0xfffffffffffff), style=0x7fffffffde50, text=0x6a6230 "SE McKinley Ave") at mapagg.cpp:377
#40 0x00007ffff79fd6d8 in msDrawText (image=0x6082e0, labelPnt=..., string=0x6a6230 "SE McKinley Ave", label=0x6a5fe0, fontset=0x6054e8, scalefactor=1) at maprendering.c:982
#41 0x00007ffff7ac60db in msDrawLabelCache (image=0x6082e0, map=0x605480) at mapdraw.c:3166
#42 0x00007ffff7ab8f45 in msDrawMap (map=0x605480, querymap=0) at mapdraw.c:488
#43 0x00007ffff7b67089 in msTileDraw (msObj=0x604040) at maptile.c:516
#44 0x00007ffff7b64cdb in msCGIDispatchImageRequest (mapserv=0x604040) at mapservutil.c:1459
#45 0x00007ffff7b657cf in msCGIDispatchRequest (mapserv=0x604040) at mapservutil.c:1690
#46 0x000000000040152c in main (argc=2, argv=0x7fffffffe5d8) at mapserv.c:259

(gdb) f 41
#41 0x00007ffff7ac60db in msDrawLabelCache (image=0x6082e0, map=0x605480) at mapdraw.c:3166
3166                    msDrawText(image, labelPtr->annopoint, labelPtr->annotext, labelPtr, &(map->fontset), layerPtr->scalefactor); /* actually draw the label */
Current language:  auto
The current source language is "auto; currently c".
(gdb) info locals
scalefactor = 1
size = 10
cacheslot = 0x605590
ll = 0
marker_offset_x = 0
value = 0x0
cachePtr = 0x65bed0
classPtr = 0x632c60
r = {minx = 1, miny = -11, maxx = 103, maxy = 1}
label_marker_line = {numpoints = 5, point = 0x7fffffffe0c0}
marker_offset_y = 0
label_offset_x = 0
i = -136395790
marker_poly = {numlines = 0, numvalues = 0, line = 0x7fffffffe1e0, values = 0x0, geometry = 0x0, renderer_cache = 0x0, bounds = {minx = -1, miny = -1, maxx = -1, maxy = -1}, type = 2, index = -1, 
  tileindex = -1, classindex = 0, text = 0x0, scratch = 0, resultindex = -1}
label_marker_points = {{x = 1.3505032603810789e-315, y = 6.9533490682342454e-310}, {x = 0, y = 0}, {x = 6.9531436082559572e-310, y = 0}, {x = 4.9406564584124654e-324, y = 6.953349175449949e-310}, 
  {x = 6.9533558074626765e-310, y = 6.9533491749792032e-310}}
metrics_poly = {numlines = 1, numvalues = 0, line = 0x7fffffffe1c0, values = 0x0, geometry = 0x0, renderer_cache = 0x0, bounds = {minx = -nan(0xfffffffffffff), miny = -nan(0xfffffffffffff), 
    maxx = -nan(0xfffffffffffff), maxy = -nan(0xfffffffffffff)}, type = 2, index = -1, tileindex = -1, classindex = 0, text = 0x0, scratch = 0, resultindex = -1}
label_offset_y = 0
labelPtr = 0x6a5fe0
label_mindistance = 1500
layerPtr = 0x6319b0
priority = 4
marker_line = {numpoints = 5, point = 0x7fffffffe110}
metrics_line = {numpoints = 5, point = 0x7fffffffe070}
l = 28
marker_points = {{x = 4.3971842479870942e-322, y = 6.9533451137324208e-310}, {x = 0, y = 6.953349175492241e-310}, {x = 6.9533558074508189e-310, y = 6.9533558074520046e-310}, {
    x = 4.2439882697144549e-314, y = 6.9533488423168494e-310}, {x = 3.115617487926568e-317, y = 6.9533451138746129e-310}}
label_marker_poly = {numlines = 0, numvalues = 0, line = 0x7fffffffe1d0, values = 0x0, geometry = 0x0, renderer_cache = 0x0, bounds = {minx = -1, miny = -1, maxx = -1, maxy = -1}, type = 2, 
  index = -1, tileindex = -1, classindex = 0, text = 0x0, scratch = 0, resultindex = -1}
metrics_points = {{x = -nan(0xfffffffffffff), y = -nan(0xfffffffffffff)}, {x = -nan(0xfffffffffffff), y = -nan(0xfffffffffffff)}, {x = -nan(0xfffffffffffff), y = -nan(0xfffffffffffff)}, {
    x = -nan(0xfffffffffffff), y = -nan(0xfffffffffffff)}, {x = -nan(0xfffffffffffff), y = -nan(0xfffffffffffff)}}
label_buffer = 0
nReturnVal = 0
__PRETTY_FUNCTION__ = "msDrawLabelCache"

(gdb) f 40
#40 0x00007ffff79fd6d8 in msDrawText (image=0x6082e0, labelPnt=..., string=0x6a6230 "SE McKinley Ave", label=0x6a5fe0, fontset=0x6054e8, scalefactor=1) at maprendering.c:982
982         return renderer->renderGlyphs(image,x,y,&s,string);
Current language:  auto
The current source language is "auto; currently c".
(gdb) info locals
s = {fonts = {0x618e10 "/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf", 0x0, 0x0, 0x0, 0x0}, numfonts = 1, size = 10, rotation = -nan(0xfffffffffffff), color = 0x6a5ff4, outlinewidth = 0, 
  outlinecolor = 0x0, antialias = -1}
renderer = 0x608650
x = -nan(0xfffffffffffff)
y = -nan(0xfffffffffffff)
nReturnVal = -1


(gdb) f 39
#39 0x00007ffff7ac790e in agg2RenderGlyphs (img=0x6082e0, x=-nan(0xfffffffffffff), y=-nan(0xfffffffffffff), style=0x7fffffffde50, text=0x6a6230 "SE McKinley Ave") at mapagg.cpp:377
377       glyphs.concat_path(trans_c);
Current language:  auto
The current source language is "auto; currently c++".
(gdb) info locals
trans_c = {m_source = 0x7fffffffd9e0, m_trans = 0x7fffffffdc80}
curfontidx = 0
fx = -nan(0xfffffffffffff)
r = 0x66df50
unicode = 83
m_curves = {m_source = 0x63ab28, m_last_x = -nan(0xfffffffffffff), m_last_y = -nan(0xfffffffffffff), m_curve3 = {m_curve_inc = {m_num_steps = 0, m_step = -1, m_scale = 1, 
      m_start_x = 2.4703282292062327e-323, m_start_y = 3.3369668023137799e-317, m_end_x = 5.2370958459172134e-322, m_end_y = 1.3486015868882666e-319, m_fx = 6.9533491548940514e-310, 
      m_fy = 3.3369668023137799e-317, m_dfx = 3.7020694570149609e-317, m_dfy = 3.3379154083537951e-317, m_ddfx = 3.3380735093604643e-317, m_ddfy = 3.9525251667299724e-323, 
      m_saved_fx = 4.5454039417394682e-322, m_saved_fy = 3.359741252324478e-317, m_saved_dfx = 3.2258692249273339e-317, m_saved_dfy = 3.0138004396316039e-322}, m_curve_div = {
      m_approximation_scale = 1, m_distance_tolerance_square = 0.25, m_angle_tolerance = 0, m_count = 0, m_points = {m_size = 1, m_num_blocks = 1, m_max_blocks = 64, m_blocks = 0x60c320, 
        m_block_ptr_inc = 64}}, m_approximation_method = mapserver::curve_div}, m_curve4 = {m_curve_inc = {m_num_steps = 0, m_step = -1, m_scale = 1, m_start_x = 9.8461219881341052e-312, 
      m_start_y = 3.2258692249273339e-317, m_end_x = 7.2500037626604419, m_end_y = 6.9533558073765114e-310, m_fx = 6.9533558073769067e-310, m_fy = 3.2258692249273339e-317, 
      m_dfx = 6.9533558073844165e-310, m_dfy = 6.953348861569896e-310, m_ddfx = 1.3910955607251939e-309, m_ddfy = 3.1298149583254621e-317, m_dddfx = 3.7004884469482689e-317, 
      m_dddfy = 3.1301944007414681e-317, m_saved_fx = 3.2258692249273339e-317, m_saved_fy = 3.2258455097763335e-317, m_saved_dfx = 2.1219957909652723e-314, m_saved_dfy = 3.3380142214829634e-317, 
      m_saved_ddfx = 3.6928837885274805e-317, m_saved_ddfy = 0}, m_curve_div = {m_approximation_scale = 1, m_distance_tolerance_square = 4.3458473798968777e-311, m_angle_tolerance = 0, 
      m_cusp_limit = 0, m_count = 0, m_points = {m_size = 0, m_num_blocks = 0, m_max_blocks = 0, m_blocks = 0x0, m_block_ptr_inc = 64}}, m_approximation_method = mapserver::curve_div}}
mtx = {sx = nan(0xfffffffffffff), shy = nan(0xfffffffffffff), shx = nan(0xfffffffffffff), sy = nan(0xfffffffffffff), tx = nan(0xfffffffffffff), ty = nan(0xfffffffffffff)}
fy = -nan(0xfffffffffffff)
utfptr = 0x6a6231 "E McKinley Ave"
glyphs = {m_vertices = {m_total_vertices = 2, m_total_blocks = 1, m_max_blocks = 256, m_coord_blocks = 0x60b310, m_cmd_blocks = 0x60bb10}, m_iterator = 0}
cache = 0x63a000
glyph = 0x71cdc0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants