使用xcode 4.4.1调试器进入boost .ipp文件

时间:2012-10-15 10:33:26

标签: xcode macos xcode4 boost-asio

有没有办法在使用boost库提供的.ipp实现文件中添加断点?

使用Visual Studio,我能够这样做,但xcode(4.4.1)不会将.ipp文件识别为代码文件。

2 个答案:

答案 0 :(得分:1)

注意:这不是一个有效的解决方案,但我希望有人可以从这里继续。

this question中所述,OSX的文件类型关联存储在plist个文件中,因此我编写了一个简短的shell脚本,用于搜索所有hpp中的字符串plists在给定目录下:

#!/bin/sh

find $1 -iname "*.plist" -print0 | while read -d $'\0' file
do
  if plutil -convert xml1 "$file" -r -o - | grep -q "<string>hpp</string>"
  then
    echo "$file"
  fi
done

按照预期,使用sh find_hpp.sh /Applications/Xcode.app调用上述脚本找到Contents/Info.plist。请注意,此文件无法使用Xcode直接编辑,因为它在Xcode运行时被锁定,但您可以退出Xcode,通过plutil -convert xml1 Info.plist -o Info.xml将二进制plist文件转换为xml,编辑xml并将其转换回{{ 1}}。

我刚刚在xml文件中搜索了plutil -convert binary1 Info.xml -o Info.plist,并添加了hpp作为附加文件类型(它发生了两次):

ipp

将已编辑的xml文件转换回二进制文件后,为了强制Launch Services重新读取plist,我触摸了应用程序包:

<dict>
        <key>CFBundleTypeExtensions</key>
        <array>
                <string>hh</string>
                <string>hp</string>
                <string>hpp</string>
                <string>hxx</string>
                <string>h++</string>
                <string>ipp</string>
        </array>
        <key>CFBundleTypeIconFile</key>
        <string>c-header_Icon</string>
        <key>CFBundleTypeName</key>
        <string>C++ Header Source</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSIsAppleDefaultForType</key>
        <true/>
        <key>LSItemContentTypes</key>
        <array>
                <string>public.c-plus-plus-header</string>
        </array>
</dict>

我退出并重新登录,但是:没有。在Xcode中仍然没有语法高亮,也没有Finder中的touch /Applications/Xcode.app 文件的文件关联。我甚至重新启动了系统,将Xcode应用程序包移动到我的桌面并返回。依然没有。我希望其他人可以从这里接听。

答案 1 :(得分:1)

  1. sudo /Applications/Xcode.app/Contents/MacOS/Xcode /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist

  2. 使用 Cmd + F 查找.cpp并添加.ipp分机附近

  3. 重新启动