~ubuntu-branches/ubuntu/saucy/monodevelop/saucy-proposed

« back to all changes in this revision

Viewing changes to src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2012-02-05 10:49:36 UTC
  • mto: (10.3.1)
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120205104936-4ujoylapu24cquuo
Tags: upstream-2.8.6.3+dfsg
ImportĀ upstreamĀ versionĀ 2.8.6.3+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
759
759
                        if (vm.Version.AtLeast (2, 9)) {
760
760
                                var sourceFileList = pending_bes.Where (b => b.FileName != null).Select (b => b.FileName).ToArray ();
761
761
                                if (sourceFileList.Length > 0) {
 
762
                                        //HACK: explicitly try lowercased drivename on windows, since csc (when not hosted in VS) lowercases
 
763
                                        //the drivename in the pdb files that get converted to mdbs as-is
 
764
                                        //FIXME: we should really do a case-insensitive request on Win/Mac, when sdb supports that
 
765
                                        if (IsWindows) {
 
766
                                                int originalCount = sourceFileList.Length;
 
767
                                                Array.Resize (ref sourceFileList, originalCount * 2);
 
768
                                                for (int i = 0; i < originalCount; i++) {
 
769
                                                        string n = sourceFileList[i];
 
770
                                                        sourceFileList[originalCount + i] = char.ToLower (n[0]) + n.Substring (1);
 
771
                                                }
 
772
                                        }
 
773
                                                     
762
774
                                        if (typeLoadReq == null) {
763
775
                                                typeLoadReq = vm.CreateTypeLoadRequest ();
764
776
                                        }
766
778
                                        typeLoadReq.SourceFileFilter = sourceFileList;
767
779
                                        typeLoadReq.Enabled = true;
768
780
                                }
 
781
                                                
769
782
                                var typeNameList = pending_bes.Where (b => b.ExceptionName != null).Select (b => b.ExceptionName).ToArray ();
770
783
                                if (typeNameList.Length > 0) {
771
784
                                        // Use a separate request since the filters are ANDed together
841
854
                        // just the ones which match a source file with an existing breakpoint.
842
855
                        //
843
856
                        if (vm.Version.AtLeast (2, 9)) {
844
 
                                foreach (TypeMirror t in vm.GetTypesForSourceFile (filename, false))
 
857
                                //FIXME: do a case insensitive request on Win/Mac when sdb supports it (currently asserts NOTIMPLEMENTED)
 
858
                                var typesInFile = vm.GetTypesForSourceFile (filename, false);
 
859
                                
 
860
                                //HACK: explicitly try lowercased drivename on windows, since csc (when not hosted in VS) lowercases
 
861
                                //the drivename in the pdb files that get converted to mdbs as-is
 
862
                                if (typesInFile.Count == 0 && IsWindows) {
 
863
                                        string alternateCaseFilename = char.ToLower (filename[0]) + filename.Substring (1);
 
864
                                        typesInFile = vm.GetTypesForSourceFile (alternateCaseFilename, false);
 
865
                                }
 
866
                                
 
867
                                foreach (TypeMirror t in typesInFile)
845
868
                                        ProcessType (t);
846
869
                        }
847
870
        
1718
1741
                readonly static bool IsMac;
1719
1742
                readonly static StringComparer PathComparer;
1720
1743
                
 
1744
                static bool IgnoreFilenameCase {
 
1745
                        get {
 
1746
                                return IsMac || IsWindows;
 
1747
                        }
 
1748
                }
 
1749
                
1721
1750
                static SoftDebuggerSession ()
1722
1751
                {
1723
1752
                        IsWindows = Path.DirectorySeparatorChar == '\\';
1724
1753
                        IsMac = !IsWindows && IsRunningOnMac();
1725
 
                        PathComparer = (IsWindows || IsMac)? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
 
1754
                        PathComparer = (IgnoreFilenameCase)? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
1726
1755
                }
1727
1756
                
1728
1757
                //From Managed.Windows.Forms/XplatUI