question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Crash getting canvas from SKSurface

See original GitHub issue

Trying to get a surface like this:

Console.WriteLine("Starting Skia Demo");
                var imgInfo = new SKImageInfo(_fb.ScreenWidth, _fb.ScreenHeight, SKColorType.Rgb565, SKAlphaType.Unpremul);
                _dbBuffer = new byte[_fb.FBSize];
                _dbBufferHandle = GCHandle.Alloc(_dbBuffer, GCHandleType.Pinned);
                _dbBufferPtr = _dbBufferHandle.AddrOfPinnedObject();
                _surface = SKSurface.Create(imgInfo, _dbBufferPtr, imgInfo.RowBytes);
                Console.WriteLine("Surface: " + _surface == null);
                _canvas = _surface.Canvas;
                Console.WriteLine("Canvas: " + _canvas == null);

Crash the application with the following:

Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) SkiaSharp.SkiaApi.sk_surface_get_canvas (intptr) <0x00037>
  at SkiaSharp.SKSurface.get_Canvas () [0x00006] in <cf546bad13294f0f88da02ef9d3e7062>:0
  at HelloPOS.Program.Main () [0x00077] in <4ec246e0fbfd44d9b46039bb4a1d762a>:0
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x0004c] in <2e7c1c96edae44d496118948ca617c11>:0
/proc/self/maps:
00010000-00011000 r-xp 00000000 00:0f 91428      /data/opt/Debug/test
00021000-00022000 rw-p 00001000 00:0f 91428      /data/opt/Debug/test
0183c000-01943000 rw-p 00000000 00:00 0          [heap]
40004000-40006000 r-xp 00000000 00:0f 91020      /data/opt/mono/lib/libdl-2.22.so
40006000-40015000 ---p 00002000 00:0f 91020      /data/opt/mono/lib/libdl-2.22.so
40015000-40016000 r--p 00001000 00:0f 91020      /data/opt/mono/lib/libdl-2.22.so
40016000-40017000 rw-p 00002000 00:0f 91020      /data/opt/mono/lib/libdl-2.22.so
40017000-40019000 rw-p 00000000 00:00 0
4002c000-4003d000 r-xp 00000000 00:0f 91041      /data/opt/mono/lib/libnsl-2.22.so
4003d000-4004c000 ---p 00011000 00:0f 91041      /data/opt/mono/lib/libnsl-2.22.so
4004c000-4004d000 r--p 00010000 00:0f 91041      /data/opt/mono/lib/libnsl-2.22.so
4004d000-4004e000 rw-p 00011000 00:0f 91041      /data/opt/mono/lib/libnsl-2.22.so
4004e000-40051000 rw-p 00000000 00:00 0
40052000-40055000 rw-p 00000000 00:00 0
4005c000-40079000 r-xp 00000000 00:0f 91032      /data/opt/mono/lib/libgcc_s.so.1
40079000-40088000 ---p 0001d000 00:0f 91032      /data/opt/mono/lib/libgcc_s.so.1
40088000-40089000 rw-p 0001c000 00:0f 91032      /data/opt/mono/lib/libgcc_s.so.1
40089000-4008b000 rw-p 00000000 00:00 0
4008c000-4008d000 rw-p 00000000 00:00 0
4008d000-4009d000 rwxp 00000000 00:00 0
4009d000-4009e000 rw-p 00000000 00:00 0
4009f000-400a0000 r--p 00000000 00:00 0
400a8000-400ab000 r--p 00000000 00:0f 91422      /data/opt/Debug/app.exe
400b8000-400c8000 rwxp 00000000 00:00 0
400c8000-400e8000 r-xp 00000000 00:0f 91013      /data/opt/mono/lib/ld-2.22.so
400e8000-400ea000 rw-p 00000000 00:00 0
400f7000-400f8000 r--p 0001f000 00:0f 91013      /data/opt/mono/lib/ld-2.22.so
400f8000-400f9000 rw-p 00020000 00:0f 91013      /data/opt/mono/lib/ld-2.22.so
400fc000-40403000 r-xp 00000000 00:0f 91039      /data/opt/mono/lib/libmonosgen-2.0.so.1.0.0
40403000-40412000 ---p 00307000 00:0f 91039      /data/opt/mono/lib/libmonosgen-2.0.so.1.0.0
40412000-40416000 rw-p 00306000 00:0f 91039      /data/opt/mono/lib/libmonosgen-2.0.so.1.0.0
40416000-40442000 rw-p 00000000 00:00 0
40442000-40443000 ---p 00000000 00:00 0
40443000-40444000 rw-p 00000000 00:00 0
40444000-4052d000 r-xp 00000000 00:0f 91065      /data/opt/mono/lib/libstdc++.so.6.0.21
4052d000-4053c000 ---p 000e9000 00:0f 91065      /data/opt/mono/lib/libstdc++.so.6.0.21
4053c000-40541000 r--p 000e8000 00:0f 91065      /data/opt/mono/lib/libstdc++.so.6.0.21
40541000-40544000 rw-p 000ed000 00:0f 91065      /data/opt/mono/lib/libstdc++.so.6.0.21
40544000-40547000 rw-p 00000000 00:00 0
40548000-405e0000 r-xp 00000000 00:0f 91035      /data/opt/mono/lib/libm-2.22.so
405e0000-405f0000 ---p 00098000 00:0f 91035      /data/opt/mono/lib/libm-2.22.so
405f0000-405f1000 r--p 00098000 00:0f 91035      /data/opt/mono/lib/libm-2.22.so
405f1000-405f2000 rw-p 00099000 00:0f 91035      /data/opt/mono/lib/libm-2.22.so
405f2000-405f3000 rw-p 00000000 00:00 0
405f4000-4071b000 r-xp 00000000 00:0f 91018      /data/opt/mono/lib/libc-2.22.so
4071b000-4072a000 ---p 00127000 00:0f 91018      /data/opt/mono/lib/libc-2.22.so
4072a000-4072c000 r--p 00126000 00:0f 91018      /data/opt/mono/lib/libc-2.22.so
4072c000-4072d000 rw-p 00128000 00:0f 91018      /data/opt/mono/lib/libc-2.22.so
4072d000-40730000 rw-p 00000000 00:00 0
40730000-40736000 r-xp 00000000 00:0f 91059      /data/opt/mono/lib/librt-2.22.so
40736000-40745000 ---p 00006000 00:0f 91059      /data/opt/mono/lib/librt-2.22.so
40745000-40746000 r--p 00005000 00:0f 91059      /data/opt/mono/lib/librt-2.22.so
40746000-40747000 rw-p 00006000 00:0f 91059      /data/opt/mono/lib/librt-2.22.so
40748000-4075e000 r-xp 00000000 00:0f 91057      /data/opt/mono/lib/libpthread-2.22.so
4075e000-4076d000 ---p 00016000 00:0f 91057      /data/opt/mono/lib/libpthread-2.22.so
4076d000-4076e000 r--p 00015000 00:0f 91057      /data/opt/mono/lib/libpthread-2.22.so
4076e000-4076f000 rw-p 00016000 00:0f 91057      /data/opt/mono/lib/libpthread-2.22.so
4076f000-40771000 rw-p 00000000 00:00 0
40774000-4077a000 r-xp 00000000 00:0f 91043      /data/opt/mono/lib/libnss_compat-2.22.so
4077a000-40789000 ---p 00006000 00:0f 91043      /data/opt/mono/lib/libnss_compat-2.22.so
40789000-4078a000 r--p 00005000 00:0f 91043      /data/opt/mono/lib/libnss_compat-2.22.so
4078a000-4078b000 rw-p 00006000 00:0f 91043      /data/opt/mono/lib/libnss_compat-2.22.so
4078c000-40795000 r-xp 00000000 00:0f 91053      /data/opt/mono/lib/libnss_nis-2.22.so
40795000-407a4000 ---p 00009000 00:0f 91053      /data/opt/mono/lib/libnss_nis-2.22.so
407a4000-407a5000 r--p 00008000 00:0f 91053      /data/opt/mono/lib/libnss_nis-2.22.so
407a5000-407a6000 rw-p 00009000 00:0f 91053      /data/opt/mono/lib/libnss_nis-2.22.so
407a8000-407b1000 r-xp 00000000 00:0f 91049      /data/opt/mono/lib/libnss_files-2.22.so
407b1000-407c0000 ---p 00009000 00:0f 91049      /data/opt/mono/lib/libnss_files-2.22.so
407c0000-407c1000 r--p 00008000 00:0f 91049      /data/opt/mono/lib/libnss_files-2.22.so
407c1000-407c2000 rw-p 00009000 00:0f 91049      /data/opt/mono/lib/libnss_files-2.22.so
407c2000-407c8000 rw-p 00000000 00:00 0
407c8000-407d8000 rwxp 00000000 00:00 0
407d8000-407fe000 rw-s 42000000 00:0b 973        /dev/graphics/fb0
40800000-40c00000 rw-p 00000000 00:00 0
40c00000-40c01000 ---p 00000000 00:00 0
40c01000-40e80000 rw-p 00000000 00:00 0
40e80000-40eb4000 r--p 00000000 00:0f 91425      /data/opt/Debug/SkiaSharp.dll
40eb4000-40ecb000 r-xp 00000000 00:0f 91068      /data/opt/mono/lib/libz.so.1.2.11
40ecb000-40eda000 ---p 00017000 00:0f 91068      /data/opt/mono/lib/libz.so.1.2.11
40eda000-40edb000 rw-p 00016000 00:0f 91068      /data/opt/mono/lib/libz.so.1.2.11
40edb000-416db000 rw-p 00000000 00:00 0
416dc000-41a93000 r--p 00000000 00:0f 91247      /data/opt/mono/lib/mono/4.5/mscorlib.dll
41a93000-41a94000 ---p 00000000 00:00 0
41a94000-41b93000 rw-p 00000000 00:00 0
41b94000-41bc4000 r-xp 00000000 00:0f 91027      /data/opt/mono/lib/libfontconfig.so.1.7.0
41bc4000-41bc5000 rw-p 00030000 00:0f 91027      /data/opt/mono/lib/libfontconfig.so.1.7.0
41bc8000-41be7000 r-xp 00000000 00:0f 91024      /data/opt/mono/lib/libexpat.so.1.6.0
41be7000-41bf6000 ---p 0001f000 00:0f 91024      /data/opt/mono/lib/libexpat.so.1.6.0
41bf6000-41bf8000 rw-p 0001e000 00:0f 91024      /data/opt/mono/lib/libexpat.so.1.6.0
41c00000-41c21000 rw-p 00000000 00:00 0
41c21000-41d00000 ---p 00000000 00:00 0
41d00000-42059000 r-xp 00000000 00:0f 91062      /data/opt/mono/lib/libSkiaSharp.so.60.0.0
42059000-42068000 ---p 00359000 00:0f 91062      /data/opt/mono/lib/libSkiaSharp.so.60.0.0
42068000-42078000 rw-p 00358000 00:0f 91062      /data/opt/mono/lib/libSkiaSharp.so.60.0.0
42078000-4207d000 rw-p 00000000 00:00 0
42080000-420fd000 r-xp 00000000 00:0f 91030      /data/opt/mono/lib/libfreetype.so.6.16.0
420fd000-4210c000 ---p 0007d000 00:0f 91030      /data/opt/mono/lib/libfreetype.so.6.16.0
4210c000-42110000 rw-p 0007c000 00:0f 91030      /data/opt/mono/lib/libfreetype.so.6.16.0
42110000-42120000 rwxp 00000000 00:00 0
42200000-42300000 rw-p 00000000 00:00 0
42300000-423f8000 r--p 00000000 00:0f 91378      /data/opt/mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll
becd6000-becf7000 rw-p 00000000 00:00 0          [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]

Native stacktrace:


Debug info from gdb:

mono_gdb_render_native_backtraces not supported on this platform, unable to find gdb or lldb

=================================================================
Got a SIGILL while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted

Any ideas on what that may be? Thanks

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:10 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
galvesribeirocommented, Feb 16, 2018

Closing as the current problem is another issue. Thanks!

0reactions
galvesribeirocommented, Feb 16, 2018

@mattleibow I cloned SkiaSharp repo and submodules from main branch and then used the published 1.59 nuget package.

Now it work-ish. For whatever reason, Skiasharp is consuming a lot of memory form the device… Trying to investigate why…

Read more comments on GitHub >

github_iconTop Results From Across the Web

Crash SkSurface::getCanvas in android 10(Q) #9067
It works even if you set it to '1' but you will // get a small screen flash so try to set it...
Read more >
SkCanvas throws when drawing from a task
A regular non awaited call will not crash but will not draw my svg. public static Task DrawSVGOnCanvas(SKCanvas canvas, string assemblyName, ...
Read more >
Skia Crashing on Windows
Skia is crashing on Windows x64, with the following example: ... auto rasterSurface = SkSurface::MakeRasterN32Premul(100, 100); ... canvas->flush();. }.
Read more >
Issues with drawing to Skia canvas with GLFW provided GL ...
Right now, my biggest problem is that Skia or SkiaSharp crashes in my draw loop. The two errors I get printed to the...
Read more >
The app crashes when using Skiasharp - Xamarin.Forms
Hi I use this function for graphics. using Plugin.Permissions; using Plugin.Permissions.Abstractions; using SkiaSharp; using SkiaSharp.Views.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found