1# Address Sanitizer Event Overview
2
3HiAppEvent provides APIs for subscribing to address sanitizer events of the system.
4
5- [Subscribing to Address Sanitizer Events (ArkTS)](hiappevent-watcher-address-sanitizer-events-arkts.md)
6- [Subscribing to Address Sanitizer Events (C/C++)](hiappevent-watcher-address-sanitizer-events-ndk.md)
7
8The **params** parameter in the event information is described as follows:
9
10**params**:
11
12| Name   | Type  | Description                      |
13| ------- | ------ | ------------------------- |
14| time     | number | Event triggering time, in ms.|
15| bundle_version | string | Application version.|
16| bundle_name | string | Application name.|
17| pid | number | Process ID of the application.|
18| uid | number | User ID of the application.|
19| type | string | Type of the address sanitizer error. For details, see the description of **type**.|
20| external_log | string[] | Path of the error log file. If the directory files exceed the threshold (for details, see **log_over_limit**), new log files may fail to be written. Therefore, delete the log files immediately after they are processed.|
21| log_over_limit | boolean | Whether the size of generated fault log files and existing log files exceeds the upper limit (5 MB). The value **true** indicates that the upper limit is exceeded and logs fail to be written. The value **false** indicates that the upper limit is not exceeded.|
22
23**type**:
24
25| Value   | Description                      |
26| ------- | ------------------------- |
27| alloc-dealloc-mismatch | The memory allocation and release modes do not match.|
28| allocation-size-too-big | The memory allocated is too large for the heap.|
29| calloc-overflow | **calloc()** fails.|
30| container-overflow | The container overflows.|
31| double-free | The same memory address is released more than once.|
32| dynamic-stack-buffer-overflow | The buffer access exceeds the boundary of a stack-allocated object.|
33| global-buffer-overflow | The global buffer overflows.|
34| heap-buffer-overflow | The heap buffer overflows.|
35| heap-use-after-free | The released heap memory is used.|
36| invalid-allocation-alignment | The alignment mode specified in memory allocation is invalid.|
37| memcpy-param-overlap | **memcpy()** does not support overlapping memory regions.|
38| new-delete-type-mismatch | The released memory size does not match the allocated memory size.|
39| stack-buffer-overflow | The stack buffer overflows.|
40| stack-buffer-underflow | The stack buffer underflows.|
41| stack-use-after-return | The stack memory is used after the function has returned.|
42| stack-use-after-scope | The stack memory is out of range.|
43| strcat-param-overlap | The source and destination buffers used for string concatenation overlap.|
44| use-after-poison | The poisoned memory (memory marked as invalid or inaccessible) is accessed or modified.|
45