【发布时间】:2009-08-23 04:27:13
【问题描述】:
嘿嘿!
我有一个小应用程序以LSUIElement 运行,NSStatusItem。
有时弹出菜单的菜单项由代码更新。但是当更新的NSMenuItem(或其超级菜单)被“突出显示”时,应用程序崩溃而没有记录任何内容。
你有什么想法吗?非常感谢您的回答。
【问题讨论】:
嘿嘿!
我有一个小应用程序以LSUIElement 运行,NSStatusItem。
有时弹出菜单的菜单项由代码更新。但是当更新的NSMenuItem(或其超级菜单)被“突出显示”时,应用程序崩溃而没有记录任何内容。
你有什么想法吗?非常感谢您的回答。
【问题讨论】:
你能在 gdb 中运行时重现崩溃吗? Gdb 在命令行中运行良好,我经常在命令行通过 gdb 运行 GUI 应用程序以捕捉间歇性崩溃。
一旦它在 gdb 中崩溃,使用 bt 命令获取崩溃位置的回溯。
这种性质的崩溃——间歇性——几乎总是由内存损坏、错误的线程或过度释放对象引起的。查看您的代码并确保您遵循 Cocoa 内存管理指南。如果您正在使用线程,请确保您没有从非主线程中不恰当地欺骗 UI 对象。
【讨论】: