I'm trying to debug problems in moonlight. Unfortunately, debugging it is bit problematic
1) with MOONLIGHT_DEBUG I got plugin crash. Frotunately, I managed to find it:
diff --git a/src/value.cpp b/src/value.cpp
index 3117f24..eda014d 100644
--- a/src/value.cpp
+++ b/src/value.cpp
<at> <at> -74,7 +74,8 <at> <at> Value::CreateUnrefPtr (Uri *uri)
result->SetKind (Type::URI);
result->u.uri = uri;
result->SetIsNull (false);
- LOG_VALUE ("unref [delete] Value [%p] %s\n", result, result->GetName());
+ // This crashes plugin at applcation load
+ //LOG_VALUE ("unref [delete] Value [%p] %s\n", result, result->GetName());
return result;
}
2) Running with valgrind moonlight will crash when silverlight app is loaded. Crash will happen on same place:
==16548== Invalid read of size 4
==16548== at 0xA903F78: ???
==16548== by 0x8913680: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:620)
==16548== by 0x891361D: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:609)
==16548== by 0x89136AF: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*)) (animat
ion.cpp:574)
==16548== by 0x8A856F6: _moonlight_cbinding_storyboard_flatten_timelines (cbinding.cpp:608
5)
==16548== by 0x1A916219: ???
==16548== by 0x1A9161C9: ???
==16548== by 0x1A915855: ???
==16548== by 0x1A9157D5: ???
==16548== by 0x1A914D87: ???
==16548== by 0x1A914147: ???
==16548== by 0x1A906E6D: ???
==16548== Address 0xffa14944 is not stack'd, malloc'd or (recently) free'd
==16548==
==16548== Invalid write of size 4
==16548== at 0x8E231D4: mono_jit_info_table_find (domain.c:386)
==16548== by 0x8CE9B2E: mono_sigsegv_signal_handler (mini.c:5840)
==16548== by 0x406BB1F: ??? (in /lib/libpthread-2.11.1.so)
==16548== by 0x8913680: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:620)
==16548== by 0x891361D: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:609)
==16548== by 0x89136AF: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*)) (animat
ion.cpp:574)
==16548== by 0x8A856F6: _moonlight_cbinding_storyboard_flatten_timelines (cbinding.cpp:608
5)
==16548== by 0x1A916219: ???
==16548== by 0x1A9161C9: ???
==16548== by 0x1A915855: ???
==16548== by 0x1A9157D5: ???
==16548== by 0x1A914D87: ???
==16548== Address 0x7e7a00c is not stack'd, malloc'd or (recently) free'd
==16548==
==16548== Invalid write of size 4
==16548== at 0x8E231DD: mono_jit_info_table_find (domain.c:387)
==16548== by 0x8CE9B2E: mono_sigsegv_signal_handler (mini.c:5840)
==16548== by 0x406BB1F: ??? (in /lib/libpthread-2.11.1.so)
==16548== by 0x8913680: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:620)
==16548== by 0x891361D: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:609)
==16548== by 0x89136AF: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*)) (animat
ion.cpp:574)
==16548== by 0x8A856F6: _moonlight_cbinding_storyboard_flatten_timelines (cbinding.cpp:608
5)
==16548== by 0x1A916219: ???
==16548== by 0x1A9161C9: ???
==16548== by 0x1A915855: ???
==16548== by 0x1A9157D5: ???
==16548== by 0x1A914D87: ???
==16548== Address 0x7e7a010 is not stack'd, malloc'd or (recently) free'd
==16548==
==16548== Thread 2 return signal frame corrupted. Killing process.
==16548==
==16548== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==16548== General Protection Fault
==16548== at 0x406BB25: ??? (in /lib/libpthread-2.11.1.so)
==16548== by 0x8913680: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:620)
==16548== by 0x891361D: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*), Moonlig
ht::Timeline*, Moonlight::DependencyObject*, Moonlight::PropertyPath*) (animation.cpp:609)
==16548== by 0x89136AF: Moonlight::Storyboard::FlattenTimelines(void (*)(Moonlight::Timeli
ne const*, Moonlight::DependencyObject const*, Moonlight::DependencyProperty const*)) (animat
ion.cpp:574)
==16548== by 0x8A856F6: _moonlight_cbinding_storyboard_flatten_timelines (cbinding.cpp:608
5)
==16548== by 0x1A916219: ???