[MonoDevelop] [PATCH] - enable out-of-project files inside of a project

Chris Morgan cmorgan at alum.wpi.edu
Mon Sep 11 21:23:34 EDT 2006


On Monday 11 September 2006 10:08 am, Lluis Sanchez wrote:
> El dom, 10-09-2006 a las 22:27 -0400, Chris Morgan escribió:
> > This is a preliminary patch to allow out-of-project files to be added to
> > a project.  This is useful when trying to move common classes to a
> > directory outside of a given project.
> >
> > The patch removes the code that was preventing users from adding files
> > from outside of their project directory.  I also added an option to the
> > 'add' dialog to "Link" a file, beside the existing options to "Copy" and
> > "Move'.
> >
> > MD can now successfully add the files to the project, they show up in the
> > treeview and the solution compiles properly.
> >
> > What I can't figure out is why this change seems to be causing mono to
> > segfault when one of the linked files is removed but not when removing a
> > non-linked file.  I'm using mono from svn and mcs from svn, updated
> > tonight. I tried running mono under gdb but the stack trace wasn't very
> > clear, the segfault occurred in the garbage collector so maybe memory
> > that was in use by gtk-sharp was freed?
>
> I haven't tried, but my bet is an stack overflow in the code that
> updates the tree (in ProjectNodeBuilder.cs). I don't think that code is
> ready to deal with files outside of the project folder.
>
> > I don't understand monodevelop code well enough to know where to look for
> > the issue but I was hoping someone would be able to lend a hand so we can
> > get this useful feature implemented.
> >
> > Chris
> >
> >
> >
> > _______________________________________________
> > Monodevelop-list mailing list
> > Monodevelop-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/monodevelop-list


I looked through ProjectNodeBuilder.cs and I can't figure out where the 
recusion might be occurring.  I added console prints to 
ProjectNodeBuilder::FindParentFolderNode() but I don't see any prints during 
the below crash that I've dumped.


(gdb) thread apply all bt

Thread 18 (Thread 1085966688 (LWP 4837)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08f048, 
mutex=0x2aaaab08f020, timeout=0x40ba8010) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x40ba8010) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x400, timeout=10000, 
alertable=1) at wait.c:202
#4  0x00000000004a5c5e in async_invoke_thread (data=0x0) at threadpool.c:1202
#5  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#6  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0faed8) at 
threads.c:253
#7  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#8  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#9  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 17 (Thread 1106450784 (LWP 4836)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08f048, 
mutex=0x2aaaab08f020, timeout=0x41f31010) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x41f31010) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x400, timeout=10000, 
alertable=1) at wait.c:202
#4  0x00000000004a5c5e in async_invoke_thread (data=0x0) at threadpool.c:1202
#5  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#6  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0fab18) at 
threads.c:253
#7  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#8  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
#9  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 16 (Thread 1104349536 (LWP 4835)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08f048, 
mutex=0x2aaaab08f020, timeout=0x41d30010) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x41d30010) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x400, timeout=10000, 
alertable=1) at wait.c:202
#4  0x00000000004a5c5e in async_invoke_thread (data=0x0) at threadpool.c:1202
#5  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#6  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0fa9d8) at 
threads.c:253
#7  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#8  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#9  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 15 (Thread 1101920608 (LWP 4834)):
#0  0x00002ab8014d538f in read () from /lib/libc.so.6
#1  0x0000000041af198a in ?? ()
#2  0x00002aaab22f8000 in ?? ()
#3  0x00000000031f3de0 in ?? ()
#4  0x00000000031bfdb0 in ?? ()
#5  0x00000000031f3de0 in ?? ()
#6  0x00000000031bfdb0 in ?? ()
---Type <return> to continue, or q <return> to quit---
#7  0x00000000032256b0 in ?? ()
#8  0x0000000041af18fe in ?? ()
#9  0x00002aaab22f8000 in ?? ()
#10 0x0000000041adeff0 in ?? ()
#11 0x0000000041adeec0 in ?? ()
#12 0x0000000000000051 in ?? ()
#13 0xffffffffffffffff in ?? ()
#14 0x00002aaab22f8000 in ?? ()
#15 0x00002aaab2f1bed0 in ?? ()
#16 0x00002aaab22f8000 in ?? ()
#17 0x00002aaab2f1be00 in ?? ()
#18 0x00002aaab22f8020 in ?? ()
#19 0x0000000041af1835 in ?? ()
#20 0x0000000041af1822 in ?? ()
#21 0x0000000041af17f2 in ?? ()
#22 0x0000000040367320 in ?? ()
#23 0x00002aaab22f8000 in ?? ()
#24 0x0000100041adf0a8 in ?? ()
#25 0x0000000000001000 in ?? ()
#26 0x0000000000001000 in ?? ()
#27 0x0000100041adf0a0 in ?? ()
#28 0x00002aaab2f1bed0 in ?? ()
#29 0x0000000000000000 in ?? ()

---Type <return> to continue, or q <return> to quit---
Thread 14 (Thread 1099688288 (LWP 4830)):
#0  0x00002ab8014e29ac in epoll_wait () from /lib/libc.so.6
#1  0x00000000004a4925 in socket_io_epoll_main (p=<value optimized out>) at 
threadpool.c:543
#2  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#3  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0fa758) at 
threads.c:253
#4  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#5  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#6  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 13 (Thread 1096669536 (LWP 4829)):
#0  0x00002ab80118bad5 in __nanosleep_nocancel () from /lib/libpthread.so.0
#1  0x00000000004bd586 in SleepEx (ms=0, alertable=1) at threads.c:997
#2  0x0000000000473142 in ves_icall_System_Threading_Thread_Sleep_internal 
(ms=500) at threads.c:607
#3  0x0000000040bb4455 in ?? ()
#4  0x00000000415dd0a8 in ?? ()
#5  0x0000000001f6ad70 in ?? ()
#6  0x0000000001263190 in ?? ()
#7  0x0000000001b31c08 in ?? ()
#8  0x0000000040bb43fb in ?? ()
#9  0x00000000415dd0a8 in ?? ()
#10 0x00000000415dcff0 in ?? ()
#11 0x00000000415dcf20 in ?? ()
#12 0x0000000001f87720 in ?? ()
---Type <return> to continue, or q <return> to quit---
#13 0x0000000000000000 in ?? ()

Thread 12 (Thread 1094568288 (LWP 4828)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab090258, 
mutex=0x2aaaab090230, timeout=0x413dbe80) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x413dbe80) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x422, timeout=5000, 
alertable=1) at wait.c:202
#4  0x000000000047121d in 
ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value optimized 
out>, handle=0x422, ms=5000,
    exitContext=<value optimized out>) at threads.c:978
#5  0x0000000040997d21 in ?? ()
#6  0x000000004033703b in ?? ()
#7  0x00000000413dc0a8 in ?? ()
#8  0x00000000413dbfb0 in ?? ()
#9  0x00000000413dbec0 in ?? ()
#10 0x0000000001daa7c0 in ?? ()
#11 0x0000000001dbded0 in ?? ()
#12 0x0000000001ae2d48 in ?? ()
#13 0x0000000040997cae in ?? ()
#14 0x00000000413dc0a8 in ?? ()
#15 0x00000000413dbfb0 in ?? ()
#16 0x00000000413dbee0 in ?? ()
#17 0x0000000001dc5b40 in ?? ()
#18 0x0000000000000000 in ?? ()

---Type <return> to continue, or q <return> to quit---
Thread 9 (Thread 1088133472 (LWP 4823)):
#0  0x00002ab80118bad5 in __nanosleep_nocancel () from /lib/libpthread.so.0
#1  0x00000000004bd586 in SleepEx (ms=0, alertable=1) at threads.c:997
#2  0x0000000000473142 in ves_icall_System_Threading_Thread_Sleep_internal 
(ms=3000) at threads.c:607
#3  0x0000000040bb4455 in ?? ()
#4  0x0000000001b4e720 in ?? ()
#5  0x0000000001b765a0 in ?? ()
#6  0x0000000001b4e720 in ?? ()
#7  0x0000000001b31c08 in ?? ()
#8  0x0000000040bb43fb in ?? ()
#9  0x0000000040db90a8 in ?? ()
#10 0x0000000040db8ff0 in ?? ()
#11 0x0000000040db8ee0 in ?? ()
#12 0x0000000001b79300 in ?? ()
#13 0x0000000000000000 in ?? ()

Thread 7 (Thread 1079466336 (LWP 4817)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08f048, 
mutex=0x2aaaab08f020, timeout=0x40575010) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x40575010) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x400, timeout=10000, 
alertable=1) at wait.c:202
#4  0x00000000004a5c5e in async_invoke_thread (data=0x0) at threadpool.c:1202
#5  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#6  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0f90d8) at 
threads.c:253
---Type <return> to continue, or q <return> to quit---
#7  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#8  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#9  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 6 (Thread 1083734368 (LWP 4815)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08fa60, 
mutex=0x2aaaab08fa38, timeout=0x40986e60) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x40986e60) at handles.c:1482
#3  0x00000000004c5c36 in WaitForSingleObjectEx (handle=0x413, timeout=10000, 
alertable=1) at wait.c:202
#4  0x000000000047121d in 
ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value optimized 
out>, handle=0x413, ms=10000,
    exitContext=<value optimized out>) at threads.c:978
#5  0x0000000040997d21 in ?? ()
#6  0xc1e0000000000000 in ?? ()
#7  0x00002aaaab08fa90 in ?? ()
#8  0x3ff0000000000000 in ?? ()
#9  0x00000000409870a8 in ?? ()
#10 0x000000000193f1a0 in ?? ()
#11 0x000000000193f010 in ?? ()
#12 0x0000000001ae2d48 in ?? ()
#13 0x0000000040997cae in ?? ()
#14 0x00000000409870a8 in ?? ()
#15 0x0000000040986f90 in ?? ()
#16 0x0000000040986ec0 in ?? ()
---Type <return> to continue, or q <return> to quit---
#17 0x0000000001922dd0 in ?? ()
#18 0x0000000000000000 in ?? ()

Thread 5 (Thread 1081633120 (LWP 4814)):
#0  0x00002ab80118b3df in __accept_nocancel () from /lib/libpthread.so.0
#1  0x00000000004c6a35 in _wapi_accept (fd=56, addr=0x0, addrlen=0x0) at 
sockets.c:199
#2  0x000000000048da23 in ves_icall_System_Net_Sockets_Socket_Accept_internal 
(sock=56, error=0x40785f04) at socket-io.c:783
#3  0x000000004057aa5e in ?? ()
#4  0x0000000040785d80 in ?? ()
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 1075988832 (LWP 4812)):
#0  0x00002ab801188d2f in pthread_cond_timedwait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
#1  0x00000000004c2f90 in timedwait_signal_poll_cond (cond=0x2aaaab08f268, 
mutex=0x2aaaab08f240, timeout=0x0) at handles.c:1413
#2  0x00000000004c540b in _wapi_handle_timedwait_signal_handle (handle=<value 
optimized out>, timeout=0x0) at handles.c:1482
#3  0x00000000004c5c75 in WaitForSingleObjectEx (handle=0x404, 
timeout=4294967295, alertable=1) at wait.c:200
#4  0x00000000005146c4 in finalizer_thread (unused=<value optimized out>) at 
gc.c:759
#5  0x00000000004734c9 in start_wrapper (data=<value optimized out>) at 
threads.c:312
#6  0x00000000004be1a3 in thread_start_routine (args=0x2aaaab0f7f58) at 
threads.c:253
#7  0x00000000004d5302 in GC_start_routine (arg=<value optimized out>) at 
pthread_support.c:1357
#8  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#9  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#10 0x0000000000000000 in ?? ()

---Type <return> to continue, or q <return> to quit---
Thread 2 (Thread 1073822048 (LWP 4811)):
#0  0x00002ab80118bad5 in __nanosleep_nocancel () from /lib/libpthread.so.0
#1  0x00000000004bb160 in collection_thread (unused=<value optimized out>) at 
collection.c:34
#2  0x00002ab801185f1a in start_thread () from /lib/libpthread.so.0
#3  0x00002ab8014e25d2 in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 46969785768736 (LWP 4810)):
#0  0x00000000004d93e6 in GC_clear_stack_inner (arg=0x0, 
limit=140737474355568) at misc.c:293
#1  0x00000000004d947e in GC_clear_stack (arg=0x0) at misc.c:341
#2  0x00000000004d4eff in GC_local_gcj_malloc (bytes=64, 
ptr_to_struct_containing_descr=0x3258170) at pthread_support.c:426
#3  0x00000000400183b5 in ?? ()
#4  0x0000000000000000 in ?? ()
(gdb) t
[Current thread is 1 (Thread 46969785768736 (LWP 4810))]
(gdb) bt
#0  0x00000000004d93e6 in GC_clear_stack_inner (arg=0x0, 
limit=140737474355568) at misc.c:293
#1  0x00000000004d947e in GC_clear_stack (arg=0x0) at misc.c:341
#2  0x00000000004d4eff in GC_local_gcj_malloc (bytes=64, 
ptr_to_struct_containing_descr=0x3258170) at pthread_support.c:426
#3  0x00000000400183b5 in ?? ()
#4  0x0000000000000000 in ?? ()
(gdb)                                                                                                             


More information about the Monodevelop-list mailing list