Каковы продуктивные способы отладки скомпилированного кода Rcpp, загруженного в R (на OS X Mavericks)?

Что-то я не понимаю, поэтому привязка данных имеет , чтобы уменьшить тестируемость. Я имею в виду, что представление эффективно основывается на том, что можно рассматривать как один или несколько представлений базы данных, не так ли? Там могут быть соединения между строками в разных представлениях. В качестве альтернативы мы можем говорить объектно-ориентированной, а не реляционной, но это на самом деле ничего не меняет - у нас все еще есть один или несколько различных объектов данных.

Если мы рассматриваем программирование как структуры данных + алгоритмы, то не было бы лучше, если бы структуры данных были ясными максимально возможными, а затем разрабатывали алгоритмы, в которых каждая из них зависела как можно меньшим количеством данных, с минимальной связью между алгоритмами?

Я чувствую очень Java-esque FactoryFactoryFactory мыслей здесь - мы хотим иметь множество представлений, несколько моделей, множество степеней свободы повсюду. Это почти так, что это движущая сила MVC и MVP и еще много чего. Теперь позвольте мне спросить: как часто вы платите за это (и определенно ли стоит стоимость)?

Я также не вижу обсуждения того, как эффективно управлять состоянием между HTTP-запросами. Разве мы не узнали от функциональных людей (и объемных ошибок, сделанных императивными спагетти), что состояние является злым и должно быть сведено к минимуму (и когда оно используется, должно быть хорошо понято)?

Я вижу много использование терминов MVC и MVP без значительных доказательств того, что люди критически относятся к ним. Ясно, что проблема заключается в «их», мне или обоим ...

30
задан Community 23 May 2017 в 11:47
поделиться

1 ответ

Это сложно. Я пробовал Xcode и Eclipse с автономным приложением C ++, но было очень трудно заставить работать все заголовки и библиотеки. Кроме того, код RcppExport вызывает вашу настоящую функцию R через указатель, который, кажется, действительно запутывает Xcode, и я не мог войти в свою функцию.

Я закончил с (gdb или lldb): В R: R -d lldb В отладчике установите точку останова: b functionName run В R: .Call(etc) # or just call your R code which invokes compiled C/C++ code Затем, когда произойдет разрыв, вернитесь в отладчик, вы можете шагать, исследовать кадры и т. Д. .

Этот краткий справочник по команде lldb / gdb очень помог.

Забудьте о попытке сделать это в графическом интерфейсе. Надеюсь, Rstudio это сделает.

2
ответ дан Jack Wasey 23 May 2017 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: