标签: assert

在iPhone上打破调试器

对于我的iPhone项目中的断言宏,我正在寻找一种以编程方式进入调试器的方法.在Windows(MSVC++)上,我可以使用__debugbreak()来实现此目的.调用此函数将停止我的程序,启动调试器,并显示调用__debugbreak()的行的调用堆栈.

iPhone的__debugbreak()有什么类似的东西吗?我已经尝试过Debugger(),但这给了我一个链接器错误.

谢谢,克劳斯

iphone debugging assert

16
推荐指数
3
解决办法
6651
查看次数

在Linux上断言失败后继续调试?

当在Windows上使用Visual C++断言失败时,调试器会停止,显示消息,然后让您继续(或者,如果没有运行调试会话,则提供为您启动Visual Studio).

在Linux上,似乎assert()的默认行为是显示错误并退出程序.由于我的所有断言都通过宏,我试图使用信号来解决这个问题,比如

#define ASSERT(TEST) if(!(TEST)) raise(SIGSTOP);
Run Code Online (Sandbox Code Playgroud)

但是虽然GDB(通过KDevelop)停在正确的位置,但我似乎无法继续通过信号,并且在GDB内手动发送信号只会让我感到不知所措,无论是GDB还是调试过程都无法控制.

c c++ linux gdb assert

16
推荐指数
2
解决办法
1万
查看次数

循环遍历数组,每个元素都进行一次JUnit测试

我有一个JUnit 4测试循环测试数据数组:

public @Test void testAll() {

    final Object[][] sets = new Object[][] {
            // SET                              TYPE VALUE

            // --- valid sets

            // groups
            x(s(A,1, B,1, C,1),                 G),
            x(s(A,4, B,4, D,4),                 G),
            x(s(A,8, B,8, D,8, C,8),            G),
            x(s(J,J, B,4, D,4),                 G,  4*3),
            x(s(A,9, J,J, D,9),                 G,  9*3),
            x(s(A,2, B,2, C,2),                 G),
            x(s(A,4, B,4, J,J),                 G,  4*3),
            x(s(A,4, B,4, C,4, D,4),            G),

            // runs
            x(s(A,1, A,2, A,3),                 R),
            x(s(B,8, B,9, B,10),                R),
            x(s(J,J, C,2, C,3),                 R,  6),
            x(s(D,8, D,9, J,J, D,11), …
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing assert junit4

16
推荐指数
2
解决办法
2万
查看次数

调试断言失败... _BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)

我有一个非常糟糕的内存泄漏,我试图修复,但不知何故,我不能删除对象而不触发此断言.

我已经通过谷歌搜索了一个解决方案并已阅读有关此错误的有关stackoverflow的问题,但我仍然无法找到答案!

根据我的研究得到此错误的可能原因:
1.删除多个对象
2.阴影复制
3.创建和删除从外部dll加载的
对象4.创建对象而不存储指针

但是:
1.我检查了代码并且无法找到双重删除
2.我使用复制构造函数来复制对象
3.错误的关联类是构建(使用MS Visual Studio)到单独的lib而不是dll.并且与此错误相关的所有类都位于同一个lib中.
我检查了代码,看起来这不是问题

如果有人能够在下面的代码中发现错误,那将是很好的,我感谢每一个指示我解决问题的提示.

编辑:
我忘了在MessageSystem的sendThreadMain中提到相同的删除问题(参见下面的代码).如果我删除消息,它会在代码中的其他地方导致意外错误.可能只是错误的数据传输......但我真的不知道.
此代码在Windows和Linux上运行!

以下是代码的错误相关部分:

信息

class Message 
{
public:
    Message (char type, unsigned char id, unsigned short size) 
    {
        mType = type;
        mId = id;
        mSize= size;
    }

    Message(const Message &o)
    {
        mType = o.mType;
        mId = o.mId;
        mSize = o.mSize;
    }

    char getType() const {return mType;};
    unsigned char getId() const {return mId;};
    unsigned short getSize() const {return mSize;};

protected:
    char mType;
    unsigned char mId; …
Run Code Online (Sandbox Code Playgroud)

c++ assert memory-leaks

16
推荐指数
1
解决办法
3万
查看次数

NUnit中最常用的方法是在集合上断言相等的长度

使用NUnit 2.6来判断两个集合长度相等而不管它们的元素值是什么,最恰当的方式是什么?

我可以看到表达这种断言的几种方式.哪一个是优选的,或者使用一个或另一个有缺点/优点?

Assert.That(coll1, Has.Count.EqualTo(coll2.Count));
Assert.That(coll1.Count, Is.EqualTo(coll2.Count));
Assert.AreEqual(coll1.Count, coll2.Count);
Run Code Online (Sandbox Code Playgroud)

我可以看到第一个选项提供了一个很好的输出,以防断言失败(预期计数...但实际上得到...),而其他两个选项只输出"Expected ...,actual ......"除非我通过附加参数提供自定义消息.

.net collections nunit unit-testing assert

16
推荐指数
1
解决办法
6491
查看次数

Node.js assert.throws with async functions(Promises)

我想检查异步函数是否assert.throws从本机assert模块抛出使用.我试过了

const test = async () => await aPromise();
assert.throws(test); // AssertionError: Missing expected exception..
Run Code Online (Sandbox Code Playgroud)

它(obvioulsy?)不起作用,因为函数在Promise解析之前退出.然而我发现了这个问题,使用回调可以实现相同的目标.

有什么建议吗?

(我正在使用Babel转发到Node.js本机生成器)

javascript assert node.js async-await ecmascript-next

16
推荐指数
3
解决办法
6849
查看次数

在constexpr抛出的异常中使用副作用是否合法?

通常,constexpr必须没有副作用.但是,我刚刚发现可以在抛出异常的构造函数中使用副作用.该技术可用于模拟constexpr函数的assert(),如下面的程序所示.

#include <iostream>
#include <cstdlib>
#include <stdexcept>

struct constexpr_precond_violated : std::logic_error
{
  constexpr_precond_violated(const char* msg) :
    std::logic_error(msg)
  {
    std::cerr << msg << '\n';
    abort(); // to get a core dump
  }
};

#define TO_STRING_IMPL(x) #x
#define TO_STRING(x) TO_STRING_IMPL(x)

#define CONSTEXPR_PRECOND(cond, value) \
  ((!(cond)) ? throw constexpr_precond_violated( \
    "assertion: <" #cond "> failed (file: " \
    __FILE__ ", line: " TO_STRING(__LINE__) ")")    \
   : (value))

constexpr int divide(int x, int y)
{
  return CONSTEXPR_PRECOND(y != 0, x / y);
}

int …
Run Code Online (Sandbox Code Playgroud)

c++ assert language-lawyer constexpr c++11

15
推荐指数
1
解决办法
732
查看次数

正确使用Java"assert"关键字

我从来没有理解assert用过的东西,尽管我已经阅读了很多例子,但他们并没有真正让我知道我应该使用它的原因或原因.

所以,不要问一个例子,我会提供一个,让我知道这是否正确使用assert.

// The idea is that the `mode` variable should be 0 or 1, and no other number.
switch(mode) {
     case 0: 
          // do stuff
          break;
     case 1:
          // do other stuff
          break;

     default:
          // assert code?
}
Run Code Online (Sandbox Code Playgroud)

如果这是正确的,请告诉我如何在这种情况下使用它.如果这不是它应该如何使用,请提供一个例子.

java assert

15
推荐指数
2
解决办法
4万
查看次数

Swift断言生产应用程序中的行为

我正在阅读Swift电子书中的Assertions部分,看起来断言与Objective-C对应物的工作方式非常相似.但是,在作为生产应用程序运行时,我可以在文档中找不到任何关于运行时行为的信息.Objective-C NSAssert承诺永远不会因断言失败而终止生产应用程序.Swift中的情况是一样的吗?

xcode assert objective-c ios swift

15
推荐指数
3
解决办法
5535
查看次数

如何在 Cypress 中使用逻辑 OR 断言

我有这个代码

cy.get(element).should('contain.text', search_word || search_word.toLowerCase())
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

expected <div.games__element__title.card-title.h5> to contain text Hot, but the text was Ultimate hot
Run Code Online (Sandbox Code Playgroud)

如何使用 OR 运算符,以便我可以断言元素的文本包含以大写或小写字母书写的搜索词?

javascript assert mocha.js cypress

15
推荐指数
1
解决办法
1万
查看次数