Giter Site home page Giter Site logo

Comments (19)

osfans avatar osfans commented on July 3, 2024

Detailed log:

*** Error in `/usr/lib/kodi/kodi.bin': free(): invalid pointer: 0x00007f8bffffffec ***
======= Backtrace: =========
/usr/lib/libc.so.6(+0x732ae)[0x7f8c258232ae]
/usr/lib/libc.so.6(+0x7872e)[0x7f8c2582872e]
/usr/lib/libc.so.6(+0x78eeb)[0x7f8c25828eeb]
/usr/lib/kodi/kodi.bin(_ZN9XBMCAddon7xbmcgui11ControlEditD0Ev+0xea)[0x1ababea]
/usr/lib/kodi/kodi.bin(_ZN9XBMCAddon7xbmcgui6Window7disposeEv+0x1c9)[0x1ad37c9]
/usr/lib/kodi/kodi.bin(_ZN14PythonBindings15cleanForDeallocEPN9XBMCAddon7xbmcgui6WindowE+0x19)[0xe50809]
/usr/lib/kodi/kodi.bin[0xe725c6]
/usr/lib/libpython2.7.so.1.0(+0x9be63)[0x7f8c2a5f9e63]
/usr/lib/libpython2.7.so.1.0(PyDict_DelItem+0xd7)[0x7f8c2a5dfba7]
/usr/lib/libpython2.7.so.1.0(+0x5873d)[0x7f8c2a5b673d]
/usr/lib/libpython2.7.so.1.0(PyObject_SetAttr+0x8f)[0x7f8c2a5e495f]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x3481)[0x7f8c2a63d651]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f1a)[0x7f8c2a63f0ea]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f1a)[0x7f8c2a63f0ea]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f1a)[0x7f8c2a63f0ea]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7f8c2a640af0]
/usr/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f8c2a640be9]
/usr/lib/libpython2.7.so.1.0(+0xfc10f)[0x7f8c2a65a10f]
/usr/lib/libpython2.7.so.1.0(PyRun_FileExFlags+0x72)[0x7f8c2a65b332]
/usr/lib/kodi/kodi.bin(_ZN14CPythonInvoker7executeERKSsRKSt6vectorISsSaISsEE+0xa6a)[0xe4ea3a]
/usr/lib/kodi/kodi.bin(_ZN14CPythonInvoker7ExecuteERKSsRKSt6vectorISsSaISsEE+0xa7)[0xe4c567]
/usr/lib/kodi/kodi.bin(_ZN7CThread6ActionEv+0x1f)[0x1b5540f]
/usr/lib/kodi/kodi.bin(_ZN7CThread12staticThreadEPv+0xb9)[0x1b556c9]
/usr/lib/libpthread.so.0(+0x7314)[0x7f8c2b545314]
/usr/lib/libc.so.6(clone+0x6d)[0x7f8c2589824d]

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

你的Chinese keyboard插件没有升级到最新版本吧。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

是2.0.2的。回頭我在其他系統上在測試看看。

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

需提供详细的kodi.log文件才好分析。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

沒有了,只能抓到這麼多,應該就是關閉鍵盤窗導致的主程序free錯誤。
不知是算主程序的錯誤,還是插件的錯誤。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000000001a2df3f in ?? ()

Thread 1 (Thread 0x7f355b0b2700 (LWP 21264)):
#0  0x0000000001a2df3f in ?? ()
#1  0x0000000001a36c5a in XBMCAddon::xbmcgui::ControlEdit::~ControlEdit() ()
#2  0x0000000001a4e2d9 in XBMCAddon::xbmcgui::Window::dispose() ()
#3  0x0000000000e02e99 in PythonBindings::cleanForDealloc(XBMCAddon::xbmcgui::Window*) ()
#4  0x0000000000e24c56 in ?? ()
#5  0x00007f35968b6e63 in subtype_dealloc () from /usr/lib/libpython2.7.so.1.0
#6  0x00007f359689cba7 in PyDict_DelItem () from /usr/lib/libpython2.7.so.1.0
#7  0x00007f359687373d in instance_setattr () from /usr/lib/libpython2.7.so.1.0
#8  0x00007f35968a195f in PyObject_SetAttr () from /usr/lib/libpython2.7.so.1.0
#9  0x00007f35968fa651 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#10 0x00007f35968fc0ea in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#11 0x00007f35968fc0ea in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#12 0x00007f35968fc0ea in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0
#13 0x00007f35968fdaf0 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0
#14 0x00007f35968fdbe9 in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#15 0x00007f359691710f in run_mod () from /usr/lib/libpython2.7.so.1.0
#16 0x00007f3596918332 in PyRun_FileExFlags () from /usr/lib/libpython2.7.so.1.0
#17 0x0000000000e0114a in CPythonInvoker::execute(std::string const&, std::vector<std::string, std::allocator<std::string> > const&) ()
#18 0x0000000000dfece7 in CPythonInvoker::Execute(std::string const&, std::vector<std::string, std::allocator<std::string> > const&) ()
#19 0x0000000001accfbf in CThread::Action() ()
#20 0x0000000001acd279 in CThread::staticThread(void*) ()
#21 0x00007f3597805314 in start_thread () from /usr/lib/libpthread.so.0
#22 0x00007f3591b5524d in clone () from /usr/lib/libc.so.6
############# END STACK TRACE ###############

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

log中的那两行不存在问题。插件没看出有什么问题,不知道为什么kodi会崩溃。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

21:07:17 T:140136997304320 DEBUG: ------ Window Init (DialogBusy.xml) ------
21:07:17 T:140136997304320 DEBUG: Window DialogBusy.xml was already loaded
21:07:17 T:140136997304320 DEBUG: Alloc resources: 0.00m
21:07:17 T:140136997304320 DEBUG: ------ Window Init (/usr/share/kodi/addons/skin.confluence/720p/DialogKeyboard.xml) ------
21:07:17 T:140136997304320 INFO: Loading skin file: /usr/share/kodi/addons/skin.confluence/720p/DialogKeyboard.xml, load type: LOAD_ON_GUI_INIT
21:07:17 T:140136997304320 DEBUG: Load /usr/share/kodi/addons/skin.confluence/720p/DialogKeyboard.xml: 7.60ms
21:07:17 T:140136997304320 DEBUG: Alloc resources: 14.33ms (7.86 ms skin load)
21:07:17 T:140136997304320 DEBUG: CGUIMediaWindow::GetDirectory ()
21:07:17 T:140136997304320 DEBUG: ParentPath = []
21:07:17 T:140135952336640 ERROR: EXCEPTION: Non-Existent Control 310
21:07:17 T:140136997304320 DEBUG: ------ Window Deinit (Pointer.xml) ------
21:07:17 T:140135952336640 ERROR: EXCEPTION: Non-Existent Control 48

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

@taxigps 那两行是打开window时打出的。
看来注定了回不去了,close时必定崩溃。

from xbmc-addons-chinese.

janplus avatar janplus commented on July 3, 2024

跟了一下,发现问题出在

    def onInit(self):
        try:
            pCtl = self.getControl(self.CTL_LABEL_EDIT)
            self.getControl(self.CTL_LABEL_EDIT).setLabel(self.strEdit)
        except:
            self.CTL_LABEL_EDIT = 312
            self.getControl(self.CTL_LABEL_EDIT).setText(self.strEdit)
            #self.getControl(self.CTL_LABEL_EDIT).setEnabled(False)
        try:
            pCtl = self.getControl(self.CTL_NUM_START)
        except:
            self.Kodi14 = True
            self.CTL_NUM_START = 100
            self.CTL_NUM_END   = 109
            self.getControl(CTL_BUTTON_LAYOUT).setLabel("")
        self.initControl()
        self.getControl(CTL_LABEL_HEADING).setLabel(self.strHeading)
        self.getControl(CTL_BUTTON_CHINESE).setLabel('中文')
        self.UpdateButtons()

中的 self.CTL_LABEL_EDIT = 312,由于更改了CTL_LABEL_EDIT导致析构时出错。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

是否可以通过__version__ 来判断xbmc的版本?

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

试了一下,不是这个问题。即使不考虑向前兼容,直接在把CTL_LABEL_EDIT初始设置为312也不解决问题。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

直接用WindowXMLDialog就没有问题,奇怪啊。

    def doModal (self):
        self.win = xbmcgui.WindowXMLDialog("DialogKeyboard.xml", os.getcwd())
        self.win.doModal()
        self.bIsConfirmed = True #self.win.isConfirmed()
        self.strEdit = "test" #self.win.getText()
        del self.win

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

看来是kodi本身的问题了。
onInit直接return就不挂,调用了一句getControl就会挂。

    def onInit(self):
        self.getControl(self.CTL_LABEL_EDIT).setText(self.strEdit)
        return
        #self.getControl(self.CTL_LABEL_EDIT).setEnabled(False)
        self.getControl(CTL_BUTTON_LAYOUT).setLabel("")
        self.initControl()
        self.getControl(CTL_LABEL_HEADING).setLabel(self.strHeading)
        self.getControl(CTL_BUTTON_CHINESE).setLabel('Chinese')
        self.UpdateButtons()

from xbmc-addons-chinese.

janplus avatar janplus commented on July 3, 2024

@taxigps 原因的确不在值的更上面,我已经确定问题出在control id 312上,只要在程序中执行了 self.getControl(312),在关闭窗口时一定会崩溃。类似于 http://forum.kodi.tv/showthread.php?tid=166581 里提到的问题。label type control没有问题而edit type control有问题,我想这是Kodi的bug。

目前我是这么临时解决的

  1. 将CTL_LABEL_EDIT改为CTL_LABEL_HEADING的值311
        self.CTL_LABEL_EDIT = 311
  1. 将onInit中关于这部分代码注释掉
        # try:
        #     pCtl = self.getControl(self.CTL_LABEL_EDIT)
        #     self.getControl(self.CTL_LABEL_EDIT).setLabel(self.strEdit)
        # except:
        #     self.CTL_LABEL_EDIT = 312
        #     self.getControl(self.CTL_LABEL_EDIT).setText(self.strEdit)
        #     #self.getControl(self.CTL_LABEL_EDIT).setEnabled(False)
  1. 将initControl中的px, py, pw, ph值获取改为DialogKeyboard.xml中的固定值
        # pEdit = self.getControl(self.CTL_LABEL_EDIT)
        # px = pEdit.getX()
        # py = pEdit.getY()
        # pw = pEdit.getWidth()
        # ph = pEdit.getHeight()
        px, py, pw, ph = 55, 60, 750, 50
  1. 将UpdateLabel改为
    def UpdateLabel(self):
        self.getControl(self.CTL_LABEL_EDIT).setLabel(self.strEdit)

这样可以在标题栏上而不是编辑框上看到输入的文字,勉强算是可以用了吧。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

果然,getControl(311)就不挂。那就是edit control的问题了。
@janplus

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

这个插件在windows系统下没有问题,在linux系统测试也会崩溃,正是在edit控件解构时崩溃。

from xbmc-addons-chinese.

osfans avatar osfans commented on July 3, 2024

看来就是linux和mac上,kodi才出现的问题。那要改kodi的代码了,等大神解决。

from xbmc-addons-chinese.

taxigps avatar taxigps commented on July 3, 2024

fixed at ba78e52

from xbmc-addons-chinese.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.