К сожалению, вы не можете избежать законов простой математики. Эта формула:
=35+B1^(-1/3)
эквивалентна:
=35+1/B1^(1/3)
, если вы установите B1 в ноль, мы получим эквивалент:
=35 + 1/0
[ 1111], что вызовет ошибку.
РЕДАКТ. №1:
(35 + 100x^-(1/3))*x
совпадает с:
35*x + 100 * x^(-1/3) * x^1
совпадает с:
35*x + 100 * x^(2/3)
и если мы установим x = 0, мы получим
35*0 + 100*0
, что:
0
У меня была такая же проблема, когда я пытался установить точки останова в плагинах Qt (которые основаны на Windows DLL).
Я нашел это обсуждение, и решение отлично сработало для меня, хотя я использую более новую версию Eclipse, чем вы, это звучит почти как та же проблема.
По сути, это использовать более старый протокол GDB, который поддерживает отложенные точки останова. Используя «Стандартное средство запуска процесса создания» вместо «GDB (DSF) Create Process Launcher» из конфигураций отладки, и я получаю все мои контрольные точки DLL, установленные сейчас.
Версия: идентификатор сборки Helios Release: 20100617-1415
CDT и GDB версии 7.0.0.
Удачи!
Я нашел одну тему, которая может ответить на этот вопрос: Почему Eclipse CDT игнорирует точки останова?
Может быть, вы пытаетесь установить точки останова в общей библиотеке, еще не загружен. Это не будет работать, пока библиотека не загрузится. Более новый gdb позволяет установить отложенный точки останова, но это может (пока) не быть поддерживается CDT. Обходной путь - установить точку останова в месте, которое доступно с самого начала, что будет быть доступным, когда общая библиотека в вопрос уже загружен. Затем установите другая точка останова в общем библиотека. Теперь должно работать. Это немного утомительнее, но обычно работает.
Может быть, это ответ? Я использую CDT v6.0.0.200906161748 и GDB v6.8