-1
can't read "_clients()": no such variable
    while executing
"set _currObj $_clients($cid)"
    (object "::.bookmarkmgr" method "::vsimwidgets::bookmarkmgr::_setcurrent" body line 11)
    invoked from within
"_setcurrent $cid"
    (object "::.bookmarkmgr" method "::vsimwidgets::bookmarkmgr::_menu_prepost" body line 16)
    invoked from within
"::.bookmarkmgr _menu_prepost .mBar.bookmarks 1 {} 1"
    (in namespace inscope "::vsimwidgets::bookmarkmgr" script line 1)
    invoked from within
"namespace inscope ::vsimwidgets::bookmarkmgr {::.bookmarkmgr _menu_prepost .mBar.bookmarks 1 {} 1}"
    ("eval" body line 1)
    invoked from within
"eval $post_cmd"
    (procedure "::Vsimmenu:efaultMenuPostCmd" line 41)
    invoked from within
"::Vsimmenu:efaultMenuPostCmd .mBar.bookmarks {namespace inscope ::vsimwidgets::bookmarkmgr {::.bookmarkmgr _menu_prepost .mBar.bookmarks 1 {} 1}} Se..."
    (menu preprocess)

How to remove this error

TomKeddie
  • 305
  • 1
  • 2
  • 10
Harry Bansal
  • 11
  • 1
  • 2

3 Answers3

0

OK, you're looking at a Tcl stack trace thrown by an event callback. You need to be a bit inventive to figure out what it means, and why the problem might be occurring. In particular, we see that you were trying to read from a variable that didn't exist; that means that either the _clients array isn't what you think it is, or that cid is an empty string when you don't expect it to be.

The only way to work out whether _clients is right is to look at the code (which you've not shown us). Check particularly if you need to say global _clients or variable _client or something like that (maybe involving upvar).

If cid is unexpectedly empty, you're going to be tracing it back. At a guess, it's the empty value that is passed in from the menu callback identified as:

::Vsimmenu:efaultMenuPostCmd .mBar.bookmarks {namespace inscope ::vsimwidgets::bookmarkmgr {::.bookmarkmgr _menu_prepost .mBar.bookmarks 1 {} 1}} Se...

It won't look like that in the code. You're looking for something that creates a menu binding that uses the namespace code command, with something that might become ::.bookmarkmgr _menu_prepost .mBar.bookmarks 1 {} 1 as the body. I'd guess it would in turn be done with list, a widget name, etc. But it might be all wrapped up in some sort of abstract widget management code too; it's not trivial to hunt this down unless you're lucky.

If you've not done any of your own code to trigger this and you're just trying to launch the application, contact the vendor and file a support request.

Donal Fellows
  • 133,037
  • 18
  • 149
  • 215
0

I contacted the vendor about this issue and they gave me a fix for my machine.

For Windows:

  1. Click on the Start button on the desktop and search for ‘regedit’
  2. Expand ‘HKEY_CURRENT_USER’ > Expand ‘Software’ > Expand ‘Model Technology’ > Choose ‘ModelSim’
  3. Delete all the files from this folder
  4. Restart ModelSim

For Linux:

There should be a “.modelsim” file in your home directory. Please delete this file and then when you restart ModelSim it will automatically create a new .modelsim file for you.

TomKeddie
  • 305
  • 1
  • 2
  • 10
0

For Windows:

Click on the Start button on the desktop and search for ‘regedit’ Expand ‘HKEY_CURRENT_USER’ > Expand ‘Software’ > Expand ‘Model Technology’ > Choose ‘ModelSim’ Delete all the files from this folder Restart ModelSim

thanks, worked :) verry thankfull